PHP: stripos 找不到值

PHP: stripos doesn't find a value

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

<?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 是 "one test" 则搜索失败; 如果 $string 是 "test one" 则搜索很好。

谢谢!

stripos 可以 return 一个看起来像 false 但实际上不是的值,即 0。在你的第二种情况下,单词 "one" 在位置 0 匹配 "one test" 所以 stripos returns 0,但在你的 if 测试中被视为错误。将您的 if 测试更改为

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

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