2012-02-02 3 views
20

우리는 SQL에 NOT LIKE %string%문자열에 PHP에 단어가 포함되어 있는지 테스트 하시겠습니까?

이 작업은 PHP에서 수행해야합니다.

if ($string NOT LIKE %word%) { do something }

내가 그 strpos()

으로 수행하지만 난 정확히 유효 PHP에서 그 comparission 문장을 필요로하는지 ..

파악을 couldnt 할 수 있다고 생각합니다.

if ($string NOT LIKE %word%) { do something }

감사

는 대소 문자를 구분하지 검색, 대신 stripos()를 사용하려는 경우 strpos()는 대소 문자를 구분하는 것이
+0

문제. 단어 일치의 정확한 의미도 제시되어야합니다. 어떤 상황에서는'\ bword \ b' 또는'\ bword | word \ b'를 사용하는 것이 더 낫습니다. –

+0

[문자열에 특정 단어가 들어 있는지 확인 하시겠습니까?] (http://stackoverflow.com/questions/4366730/check-if-string-contains-specific-words) – Jeroen

답변

47
if (strpos($string, $word) === FALSE) { 
    ... not found ... 
} 

참고.

또한 ===에 유의하십시오. 엄격한 동등성 테스트가 필요합니다. strpos 'needle'문자열이 '건초 더미'의 시작 부분에있는 경우 유효한 0을 반환 할 수 있습니다. 실제 부울 false (aka 0)에 대한 검사를 강요하면 false positive를 제거합니다.

+0

% word %는 (는) 와일드 카드이며 variable ... $ string은 $ string = 123.456.789.100과 같은 char 형식의 IP 주소를 포함하고 있으며, 123.456 %로 시작하는 것을 제외하고 싶습니다 (0123). –

+0

@LucasMatos 그런 다음'$ word = "word"' 그리고 나서 와일드 카드 인 동안, 그것은 'strpos'가 다루는 매우 사소한 사용법 ("floating ends")입니다. (실제로 이것은 strpos가 여기에서 작동하기 때문입니다!). '? '가 "어떤 문자와도 매칭"을 의미한다면, 예를 들어 –

+2

@LUcas : 그 질문에서 그렇게 말했을 것입니다.'$ word = "a? b"'이 접근법에서는 작동하지 않을 것입니다. 간단한 예를 통해 간단한 답을 얻을 수 있습니다. –

16

strpos을 사용하십시오. 문자열이 없으면 false을 반환하고 그렇지 않으면 false이 아닌 값을 반환합니다. 0가 반환 될 수 있습니다와 같은 형태 보증 비교 (===)을 사용하십시오 그리고 그것은 falsy 값 : 나는 더 나은을 반영하기 위해 제목을 업데이트

if (strpos($string, $substring) === false) { 
    // substring is not found in string 
} 

if (strpos($string, $substring2) !== false) { 
    // substring2 is found in string 
} 
1
<?php 
// Use this function and Pass Mixed string and what you want to search in mixed string. 
// For Example : 
    $mixedStr = "hello world. This is john duvey"; 
    $searchStr= "john"; 

    if(strpos($mixedStr,$searchStr)) { 
     echo "Your string here"; 
    }else { 
     echo "String not here"; 
    } 
+0

$ searchStr이 $ mixedStr의 시작 부분에 있으면 실패합니다. 이 예제에서 "hello"를 검색하면 "String not here"가 표시되어 strpos가 0을 반환하므로 else 조건으로 분기됩니다. strpos의 반환 값을 확인할 때는 항상 ===를 사용하십시오. –

0

use 
 

 
if(stripos($str,'job')){ 
 
    // do your work 
 
}

+1

이전 답과 동일합니다 !!! –

+0

@RohitGupta 아니요 코드 스 니펫 샘플이 없습니다. – a20

관련 문제