PHP 喜欢类似于 MySQL Like, for if 语句?

2022-08-30 18:45:00

我想要一个if语句,使用与mysql相同的东西something LIKE '%something%'

我想在php中构建一个if语句。

if ($something is like %$somethingother%)

可能吗?

我问这个问题的原因是我不想改变MySQL命令,这是一个很长的页面,上面有很多东西,我不想为此构建一个不同的函数。

让我知道这是否可能,如果可能的话,那么如何做。


答案 1

如果($something类似于 %$somethingother%)

可能吗?

不。

我不想更改MySQL命令,这是一个很长的页面,上面有很多东西

使用一些好的编辑器,它支持查找和替换中的正则表达式,并将其转换为如下内容:

if(stripos($something, $somethingother) !== FALSE){

}

答案 2

我知道,这个问题不是实际的,但我已经解决了类似的问题:)

我的解决方案:

/**
 * SQL Like operator in PHP.
 * Returns TRUE if match else FALSE.
 * @param string $pattern
 * @param string $subject
 * @return bool
 */
function like_match($pattern, $subject)
{
    $pattern = str_replace('%', '.*', preg_quote($pattern, '/'));
    return (bool) preg_match("/^{$pattern}$/i", $subject);
}

例子:

like_match('%uc%','Lucy'); //TRUE
like_match('%cy', 'Lucy'); //TRUE
like_match('lu%', 'Lucy'); //TRUE
like_match('%lu', 'Lucy'); //FALSE
like_match('cy%', 'Lucy'); //FALSE

推荐