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

时间:2017-09-29 03:54:52

标签: php string strpos

我想检查字符串是否包含特定字词?根据{{​​3}},我可以使用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

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

2 个答案:

答案 0 :(得分:1)

在这里,您可以使用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
}

答案 1 :(得分:0)

您可以解析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
}