我将以下IP地址编码为字符串:
"\x7F\0\0\x01"
虽然我可以用眼睛看出它是如何编码的(八位字节,斜线,八位字节......),但我无法在PHP中操作。
我试图用\(或双)作为分隔符拆分(爆炸),但没有运气。
>>> $d['_ip']
=> "\x7F\0\0\x01"
>>> $ip = explode("\\", $d['_ip'])
=> [
"\x7F\0\0\x01",
]
当我尝试回声时,它不会打印。
>>> echo $d['_ip']
⏎
>>>
我需要将每个八位字节都作为字符串。
答案 0 :(得分:2)
我发送的字符串来自Javascript或JSON。文字字符'\','x','7'等不是正在发送的内容。该字符串表示的是四个单独的字节,每个字节从0到255。
试试这个:
$ip = str_split($d['_ip']); // Break the string into an array of individual bytes
$ip = array_map('ord', $ip); // Map those bytes to their integer equivalents via the `ord()` function
$ip = implode('.', $ip); // Cast the bytes back to strings and connect with dots