我想要一个if语句使用像mysql一样的东西something LIKE '%something%'
PHP就像类似于MySQL的东西一样,对于if语句?
我想在php中构建一个if语句。
if ($something is like %$somethingother%)
这可能吗?
我问这个问题的原因是我不想更改MySQL命令,它是一个很长的页面,上面有很多东西,我不想为此构建不同的功能。
让我知道这是否可能,如果可能的话,那么该怎么做。
我想要一个if语句使用像mysql一样的东西something LIKE '%something%'
PHP就像类似于MySQL的东西一样,对于if语句?
我想在php中构建一个if语句。
if ($something is like %$somethingother%)
这可能吗?
我问这个问题的原因是我不想更改MySQL命令,它是一个很长的页面,上面有很多东西,我不想为此构建不同的功能。
让我知道这是否可能,如果可能的话,那么该怎么做。
如果($东西就像%$ somethingother%)
这可能吗?
没有。
我不想改变MySQL命令,它是在它
使用一些很好的编辑器,支持查找&替换正则表达式有许多东西很长的网页,并把它转化为是这样的:
if(stripos($something, $somethingother) !== FALSE){
}
外观上strstr功能
使用功能,像另一个字符串搜索字符串:strstr
,strpos
,substr_count
。
我知道,这个问题是不现实的,但我已经解决了类似的问题:)
我的解决办法:
个/**
* 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
我喜欢它 - 一个小小的变化。模式行应该是`$ pattern = str_replace('%','。*',preg_quote($ pattern,'/'));`。否则,对于preg_match(),正斜杠不会转义。 – 2015-07-08 13:12:42
但是,你将不得不放弃小写的字符串,那么它会正常工作。 strstr功能的示例:
$myString = "Hello, world!";
echo strstr($myString, "wor"); // Displays 'world!'
echo (strstr($myString, "xyz") ? "Yes" : "No"); // Displays 'No'
strpos was perfect :) – friendishan 2011-02-06 08:27:43