我需要找到这三个单词中的一个,即使是写在字符串的开头,而不仅仅是写在中间或结尾。这是我的代码:
<?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是"testone",则搜索效果良好。
谢谢!
stripos
可以返回一个看起来像false
但实际上不是的值,即0
。在第二种情况下,单词"one"
与位置0处的"one test"
匹配,因此stripos
返回0,但在if
测试中,这被视为false。将if
测试更改为
if ( stripos ( $string, $word) !== false ) {
并且您的代码应该可以正常工作。