我正在尝试在 php 中获取 IP 地址的前 3 部分。
例如,让我们将 IP 地址视为
"1.2.3.4";
那么我想得到
"1.2.3";
提前致谢。
您可以这样做以获得前 3 个部分:
$nums = explode(".", "1.2.3.4") ;
echo $nums[0]. "." .$nums[1]. "." .$nums[2] ;
或者你也可以这样做:
$ip = "1.2.3.4";
$dotPosition = strrpos($ip, '.'); //getting position of the last dot
echo substr($ip, 0, $dotPosition); //getting the characters until that position.
$nums = explode(".", "1.2.3.4") ;
echo "{$nums[0]}.{$nums[1]}.{$nums[2]}" ; //echoes 1.2.3
$ip = "1.2.3.4";
$nums = explode(".",$ip) ;
echo $nums[0].".".$nums[1].".".$nums[2] ;
这是一个函数:
function GetFirstThree($ip) {
if(strlen($ip) <= 10) {
$pos = strpos($ip, '.', strlen($ip)-3);
} else {
$pos = strpos($ip, '.', strlen($ip)-4);
}
$ip = substr($ip, 0, $pos);
$ip = substr($ip, 0, strlen($ip));
return $ip;
}
echo GetFirstThree("127.0.0.1");
$ip = "1.2.3.4"
$firstThreeOctetOfIp = implode('.', array_slice(explode('.', $ip), 0, 3)); // "1.2.3"
explode
获取具有 4 个值的数组的 IParray_slice
获取具有所需值的数组implode
从最终数组中获取字符串