phpstrpos不存在_php中STRPOS查找失败返回的是FALSE注意事项

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

STRPOS用法

strpos(string,find,start)

我们看看strpos的一段代码:

//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)来判断匹配是否成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值