PHP查看字符串中的特殊字符

时间:2012-09-12 06:24:19

标签: php special-characters var-dump

试图找出PHP正在使用换行符和特殊字符做什么。我有一个字符串,当我var_dump($string)输出时:

string 'ls -al

    free -m' (length=16)

如何查看埋在这里的特殊字符?例如,需要查看它们是\n还是&#10还是它们是什么。

感谢。

3 个答案:

答案 0 :(得分:5)

查看不可打印字符的最佳方法是打印bin2hex($string)。这为您提供了字符串的实际二进制转储。将其与您最喜欢的ASCII table或其他特定于您的字符串所在的编码的表进行比较。

答案 1 :(得分:2)

如果您在使用PHP Cli的unix环境中运行命令,则可以尝试使用cat

php file.php | cat -e

否则,您可以将var_dump处理为字符串并手动显示特殊字符:

$string = "test
test";

$dump = var_export($string, true);
for ($i = 0; ($i < strlen($dump)); $i++) {
    if ((ord($dump[$i]) < 32) || (ord($dump[$i]) > 127)) {
        echo '(' . ord($dump[$i]) . ')';
    } else {
        echo $dump[$i];
    }
}

// will output 'test(13)(10)test' on Windows, 'test(10)test' on Unix systems.

答案 2 :(得分:0)

您可以使用:

preg_match("/(&#[0-9]+;)|[\t\r\n]/", $string, $matches);
print_r($matches);