如何对 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(
然后捕获数字然后 )
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
}
我想检查一个字符串是否包含特定的单词?根据 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(
然后捕获数字然后 )
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
}