如何对 PHP 中的 strpos() 等函数使用条件?

How to use conditions on functions like strpos() in PHP?

我想检查一个字符串是否包含特定的单词?根据 How do I check if a string contains a specific word? 我可以使用 strpos() 功能。

我写的示例代码

if(strpos($value, 'filters(10)') === false){
    //Do something
} else {
    //Do Another Thing
}

如果我需要检查特定的单词 filters(10) 上面的函数工作正常。 但我需要用过滤词检查所有大于 10 的数字。

例子

$value = 'bla bla  bla bla' // Should return false
$value = 'bla bla filters(1) bla bla' // Should return false
$value = 'bla bla filters(5) bla bla' // Should return false
$value = 'bla bla filters(10) bla bla' // Should return true
$value = 'bla bla filters(15) bla bla' // Should return true
$value = 'bla bla filters(20) bla bla' // Should return true

如何修改我的代码以获得上述结果?

在这里您可以使用 Regex 来获取特定号码。然后应用更多条件。

正则表达式: filters\((\d+)\)

这将匹配 filters( 然后捕获数字然后 )

Try this code snippet here

preg_match("#filters\((\d+)\)#", $value, $matches);
if(isset($matches[1]) && $matches[1]>10)
{
    //do something on true
}
else
{
    //do something on false
}

您可以解析filters()中的元素并与10进行比较。

if(($pos = strpos($value, 'filters(10)')) === false){
    if(intval(substr($value, $pos + strlen('filters('))) > 10) {
    //Do something
    } else {// do another thing}
} else {
    //Do Another Thing
}