首页 > php代码 > php中STRPOS查找失败返回的是FALSE注意事项

php中STRPOS查找失败返回的是FALSE注意事项

strpos() 函数返回字符串在另一个字符串中第一次出现的位置了,但是我们在按官方的手册来测试时发现一直返回false了,那么要如何来解决

STRPOS用法

strpos(string,find,start)

我们看看strpos的一段代码:

<?php
//ajax获取分词
public function get_segment_words() {
    $title = I('title');
    $content = I('content');
    $Segment = M('Segment');
    $Segment_content = M('Segment_content');
    $segment_array = $Segment->getField('id,word');
    $setment_words = array();
    foreach ($segment_array as $id => $word) {
        if (false !== strpos($content, $word) || false !== strpos($title, $word)) {
            $segment_words[] = $word;
        }
    }
    $segment_words = array_unique($segment_words);
    $segment_words = implode(',', $segment_words);
    echo $segment_words;
    exit; //ajax获取填充
    
}
注意这句代码:if (false !== strpos($content, $word) || false !== strpos($title, $word)) {
    //TODO
    
}

如果匹配失败,strpos会返回bool类型的false,这个一定要注意。不然会出现什么情况呢?假如你要匹配的字符正好在第一个位置,对于strpos这个函数来说返回的是0,也就是位置0 . 这个时候实际上是匹配到了,结果返回0,如果这样判断就错了:if (!strpos($content, $word)) 举个例子:内容:购物袋范德萨法拉点撒范德萨。匹配:购物如果要找内容里面是否有“购物”两个字,strpos会返回0,表示存在“购物”两个字,位置是0 . 因此要用false != strpos($find, $content) 来判断匹配是否成功。


本文链接:http://www.phprm.com/code/82269.html

收藏随意^^请保留教程地址.

标签:foreach

相关文章

发表留言