PHP:有没有办法看到像'n这样的"隐形"字符

duk*_*vin 23 php

有没有办法以print_r()的方式查看像空格,换行符和其他非打印字符这样的不可见字符?

原因是我的阵列中存在某种我无法看到和破坏事物的角色.

Object Object
(
  [name] => name
  [numbers] => Array
      (
          [0] => 123

          [1] => 456
          [2] => 789
      )
   [action] => nothing
)
Run Code Online (Sandbox Code Playgroud)

看到[0]和[1]之间奇怪的空白?当打印出[0]时,也会打印换行符.但是我没有在哪里为[0]分配换行符,所以我很困惑.

在PHP中是否有内置函数show_invisible(Object->numbers[0]),它会显示123\n或类似?

Geo*_*ili 44

要看到所有不可见的角色\r,\n等等......很高兴看到json_encodeed版本,一切都很清楚:

$str = "...";
echo json_encode($str);
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说是最简单/最简单的解决方案。找到了我正在寻找的 `\r`。 (3认同)

MyS*_*eam 5

你可能会列出所有的控制字符,但试试这个来快速修复?

PHP - 打印带有控制字符的字符串

这是一种简单str_replace("\n",'\n',$string)的修复,但您可能可以调整数组上的函数回调的解决方案以转换这些字符。


Fla*_*ius 2

您可以使用addcslashes函数:

字符串addcslashes(字符串$str,字符串$charlist)

这将返回一个字符前带有反斜杠的字符串。一个例子是:

<?php
echo addcslashes('foo[ ]', 'A..z');
// output:  \f\o\o\[ \]
// All upper and lower-case letters will be escaped
// ... but so will the [\]^_`
?>
Run Code Online (Sandbox Code Playgroud)