检查字符串是否包含数组中的值

2022-08-30 07:45:48

我正在尝试检测字符串是否包含至少一个存储在数组中的URL。

这是我的数组:

$owned_urls = array('website1.com', 'website2.com', 'website3.com');

该字符串由用户输入并通过 PHP 提交。在确认页面上,我想检查输入的URL是否在数组中。

我尝试了以下方法:

$string = 'my domain name is website3.com';
if (in_array($string, $owned_urls))
{
    echo "Match found"; 
    return true;
}
else
{
    echo "Match not found";
    return false;
}

无论输入什么,返回始终是“找不到匹配”。

这是正确的做事方式吗?


答案 1

试试这个。

$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    //if (strstr($string, $url)) { // mine version
    if (strpos($string, $url) !== FALSE) { // Yoshi version
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;

使用 stristr()stripos() 如果你想检查不区分大小写。


答案 2

如果您只想在数组中查找字符串,则要这样做要容易得多。

$array = ["they has mystring in it", "some", "other", "elements"];
if (stripos(json_encode($array),'mystring') !== false) {
echo "found mystring";
}