PHP如何改造字符串匹配函数,支持逗号分隔多关键词任意命中检测
改造方案
你可以参考下方代码对原有方法进行改造,改造后既兼容原来的单个关键词调用逻辑,也支持多个逗号分隔的关键词检测:
public static function likecheck($str, $searchTerm) { // 统一将目标字符串转小写,保证不区分大小写匹配 $str = strtolower($str); // 将搜索关键词转小写后按逗号分割,同时自动去除每个关键词前后的空白字符 $keywords = array_map('trim', explode(',', strtolower($searchTerm))); // 遍历所有关键词,只要存在任意一个匹配就直接返回true foreach ($keywords as $keyword) { // 自动跳过空关键词,兼容传入首尾逗号、连续逗号的异常场景 if (empty($keyword)) { continue; } if (strpos($str, $keyword) !== false) { return true; } } // 所有关键词都未匹配到则返回false return false; }
效果验证
原有单个关键词调用不受影响
$found = App\Helper::likecheck('Developers are very good','very'); if($found){ echo 'ok'; // 正常输出ok }
多关键词调用符合预期
$found = App\Helper::likecheck('Developers are very good','very, good, gentle'); if($found){ echo 'found'; // 匹配到very或good,输出found }
内容的提问来源于stack exchange,提问作者Anonymous Girl
相关产品推荐
相关产品推荐

