如何将编码未知的字节序列作为PHP的输入



我有一个编码未知的文件。我可以使用file_get_contents((将此文件作为字符串读取。我想导出这个字符串,这样它就可以作为PHP代码使用。该字符串可以使用bin2hex((以十六进制表示。但是,如果没有特殊的代码,这就不能在PHP中使用。所以我的问题是:如何用PHP输出编码未知的文件中的字节序列,使输出可以用作可复制的PHP代码?

var_export可能就是您要查找的函数。jspit的解决方案同样有效,但var_export将更加紧凑。

使用此函数,可以回显包含任何字符(控制字符..(的字符串。此字符串可以作为字符串复制并插入编辑器中。

function strhex($s){
return $s != '' ? '\x'.implode('\x',str_split(bin2hex($s),2)) : '';
}

示例:

$str = "íéťů4€ ";  //"my unknown string"
echo strhex($str);
//xc3xadxc3xa9xc5xa5xc5xafx34xe2x82xacx20x01

复制输出并用作字符串

$input = "xc3xadxc3xa9xc5xa5xc5xafx34xe2x82xacx20x01";

$input与$str相同。这个函数的输出可以在浏览器中完成,并用Ctrl C复制。像var_dump((和var_export((这样的PHP函数在几个地方失败。

示例:

$str = "xe2x82";
var_export($str);
//'�'

浏览器中var_export((的输出在此处失败,因为$str不是有效的UTF-8。strhex((的输出为\xe2\x82

最新更新