PHP:stripos找不到值

时间:2018-11-24 09:08:18

标签: php stripos

我需要找到三个单词之一,即使写在字符串的开头而不是仅仅在字符串的中间或结尾。 这是我的代码:

<?php
$string = "one test";
$words = array( 'one', 'two', 'three' );
foreach ( $words as $word ) {
    if ( stripos ( $string, $word) ) {
        echo 'found<br>';
    } else {
        echo 'not found<br>';
    }
}
?>

如果$ string是“一个测试”,则搜索失败; 如果$ string是“ test one”,则搜索是好的。

谢谢!

1 个答案:

答案 0 :(得分:1)

stripos可以返回看起来像false的值,而不是0。在您的第二种情况下,单词"one"在位置0与"one test"相匹配,因此stripos返回0,但是在您的if测试中被认为是错误的。将您的if测试更改为

if ( stripos ( $string, $word) !== false ) {

,您的代码应该可以正常工作。