【问题标题】:Can't convert 'binary' string to 'regular' string无法将“二进制”字符串转换为“常规”字符串
【发布时间】:2018-10-29 10:51:34
【问题描述】:

我正在通过“file_get_contents”读取文件。展开内容后,其中一个元素在我转储时是这样呈现的:

dd($myVariable);

b“信用”

我在互联网上读到这是某种“二进制”字符串,与从未存在的 PHP 版本 6 相关。但我根本找不到将其转换为“常规”字符串的方法。

我认为它们在某种程度上是等价的,但我什至不能用它来与另一个字符串进行比较。例如,这些都不会返回 true:

if ($myVariable == "Crédito") 
if ($myVariable === "Crédito")
if ($myVariable == b"Crédito")
if ($myVariable == (binary)"Crédito")

如何将其转换为常规字符串?

【问题讨论】:

  • var_dump的输出吗?
  • b"Crédito" 不是有效的 PHP,你需要它是 'b"Crédito"'var_dump 显示什么,实际上是二进制的?

标签: php string binary


【解决方案1】:

您需要使用 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);

【讨论】:

    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    相关资源
    最近更新 更多