我已经在两个字符串中存储了两个ip地址值
a = '116.95.123.111'
b = '116.95.122.112'
我只是想比较ip地址的前两部分,即两个字符串中的116.95
部分,因为它在两个字符串中是相同的,我的比较应该返回true。如何在PHP中进行部分字符串比较?
答案 0 :(得分:5)
substr_compare
是二进制安全的。
答案 1 :(得分:4)
在这种特殊情况下(比较IP地址)
if((ip2long($a) >> 16) == (ip2long($b) >> 16)) echo "equal";
答案 2 :(得分:4)
IP地址可以包含前导零。爆炸时,可以将它们作为整数进行比较,以便忽略前导零。
$a = "116.95.123.111";
$b = "116.095.123.111" // same IP as $a, but with leading zero
“干净”的方式将是这样的......
$ip1 = explode(".", $a);
$ip2 = explode(".", $b);
if (($ip1[0] == $ip2[0]) && (ip1[1] == $ip2[1])) {
// success. Do something
} else {
// not valid
}