如何在多个文本字符串中使用数组或in_array进行strpos

时间:2017-11-11 15:57:52

标签: php arrays string strpos

我制作了这段代码

$message = 'This domain has strpos';
$links = array('domain.com', 'do.main');
$safe = strpos($message, $links);
return $message;

但在我的页面中出现错误 errorHandler->错误,我的代码有什么问题? 我做了一些丢失的代码吗?

我想要检测消息是否在$ links中包含字符串然后执行其余代码

感谢退出

2 个答案:

答案 0 :(得分:3)

请尝试这个会给出预期的输出。

$message = 'This domain has strpos';
$links = array('domain.com', 'do.main');
$safe = array();
foreach($links as $key=>$result){
    if(strpos($message, $result) != false){
      $safe[$result] = "String is available";   
    } else{
      $safe[$result] = "String is not available";       
    }

}
print_r($safe);

答案 1 :(得分:0)

由于PHP没有优雅的解决方案,而我所看到的只是完整的功能,因此这是一个简单的可行

$ arr将保存您不想要的字符串数组

// If string has illegal characters return false 
function str_allowed($str, $arr) {
    foreach ($arr as $bad_string) {
        if(strpos($str, $bad_string) !== false)
            return false; // bad string detected, return false
    }
    return true; // if we got this far means everything's good return true
}