如何检查某些字符是否在字符串中?

问题描述:

,我们有一个像字符串:如何检查某些字符是否在字符串中?

$string="Lorem Ipsum is simply dummy text of the printing and typesetting industry."; 

所以我要检查,如果有的话是在该字符串可用。例如词:

$words=['Ipsum','54']; 

,你可以看到Ipsum是字符串中,但54不是字符串,因此该函数应该再打true(因为Ipsum找到)。 我使用PHP,感谢您的帮助。

+0

***'$字=阵列( '存有', '54');' –

+0

自己创建一个函数,并把strpos它 –

+0

您应该使用strpos,运行的foreach ()for $ words数组,并在foreach中使用strpos。 –

php > $string="Lorem Ipsum is simply dummy text of the printing and typesetting industry."; 
php > $lookfor = "simply"; 
php > echo strpos($string, $lookfor) > 0 ? true : false ; 
1 
php > $lookfor = "simplest"; 
php > echo strpos($string, $lookfor) > 0 ? true : false ; 
//nothing will be printed -)) 

只是让从上面的代码中的函数。

更新

$ cat search.php 
<?php 

$domain="asdasd asd fasdfasfafafad f454 asdfa"; 
$lookfor=array('as','f454'); 

function containsOneOfThoseWords($str, $words) { 
    foreach ($words as $word) { 
     if (strpos($str, $word) !== false) return true; 
    } 
    return false; 
} 

echo containsOneOfThoseWords($domain, $lookfor); 
?> 
$ php search.php; echo 
1 
+0

'strpos'也可以返回0,如果搜索词在位置'0' - 你应该检查'false'而不是'> 0' – Philipp

+0

是的,这是正确的 - )) – marmeladze

+0

感谢您的帮助,但看到这个代码:ali98.xyz/filter.txt,它没有工作! –

一个简单的循环与strpos结合应该是所有你需要做到这一点

function containsOneOfThoseWords($str, $words) { 
    foreach ($words as $word) { 
     if (strpos($str, $word) !== false) return true; 
    } 
    return false; 
} 
+0

感谢您的帮助,但看到下面的代码:https://ali98.xyz/filter.txt,它没有工作! –

+0

@AliYQB你应该把参数传递给函数......'containsOneOfThoseWords($ str,$ words)' – Philipp