使用数字范围PHP搜索strpos()

时间:2018-01-26 00:52:22

标签: php iptables strpos

我想在一个阻塞端口的字符串中搜索规则iptables,我想显示该端口。

例如,规则iptables -A OUTPUT -p tcp --dport 8080 -j DROP;我希望能够strpos搜索字符串tcp --dport 8080 -j DROP,但搜索范围为1-65335 instead of 8080

请原谅我可怜的英语。

1 个答案:

答案 0 :(得分:2)

假设每个字符串都是固定格式的,例如你可以搜索数字,然后使用preg_match()函数检查是否在范围内

$str = 'iptables -A OUTPUT -p tcp --dport 8080 -j DROP;';

preg_match('/\d+/', $str, $match); // search for matches
if ($match[0] >= 1 && $match[0] <= 65335) {
    echo "Valid number found on string";
}

模式/\d+/搜索任意数字,1到无限次

备注:
1。当在字符串上找不到数字时,将导致未定义的错误/警告
2。如果找到超过1个整数,可能会变得不准确