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

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

May 23, 2016 am 08:33 AM
strpos

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


本文地址:

转载随意,但请附上文章地址:-)

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)