问题描述
我正在通过"file_get_contents"读取文件.分解内容后,当我转储内容时,将以这种方式显示其中一个元素:
I'm reading from a file through 'file_get_contents'. After exploding the content, one of the elements is presented this way when I dump it:
dd($myVariable);
我在互联网上读到,这是某种二进制"字符串,与从未存在过的PHP版本6有关.但是我根本找不到将其转换为常规"字符串的方法.
I've read on the internet that this is some kind of 'binary' string, related to a PHP version 6 that never existed. But I simply can not find a way to convert it to a 'regular' string.
我以为它们在某种程度上是等效的,但是我什至不能用它来与另一个字符串进行比较.例如,这些都不会返回true:
I thought they were somehow equivalent, but I can't even use it to compare to another string. For example, none of these will ever return true:
if ($myVariable == "Crédito")
if ($myVariable === "Crédito")
if ($myVariable == b"Crédito")
if ($myVariable == (binary)"Crédito")
如何将其转换为常规字符串?
How can I convert it to a regular string?
推荐答案
您需要使用 unpack
函数( http://php.net/manual/en/function.unpack.php )
字符串示例:
$var = b"binary";
$unpacked = unpack("a*", $var); // "a*" stands for as much as NUL-padded strings as possible
var_dump($unpacked);
这篇关于无法将“二进制"字符串转换为“常规"字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!