使用斜杠打印/分解PHP字符串

时间:2018-02-09 02:08:07

标签: php string split hex explode

我将以下IP地址编码为字符串:

"\x7F\0\0\x01"

虽然我可以用眼睛看出它是如何编码的(八位字节,斜线,八位字节......),但我无法在PHP中操作。

我试图用\(或双)作为分隔符拆分(爆炸),但没有运气。

>>> $d['_ip']
=> "\x7F\0\0\x01"
>>> $ip = explode("\\", $d['_ip'])
=> [
    "\x7F\0\0\x01",
    ]

当我尝试回声时,它不会打印。

>>> echo $d['_ip']
⏎
>>> 

我需要将每个八位字节都作为字符串。

1 个答案:

答案 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