我正在尝试弄清楚 PHP
如何处理换行符和特殊字符。我有一个字符串,当我执行 var_dump($string)
时,输出结果如下:
string 'ls -al
free -m' (length=16)
我该如何查看此处隐藏的特殊字符?例如,需要知道它们是\n
还是

或其他什么。
谢谢。
我正在尝试弄清楚 PHP
如何处理换行符和特殊字符。我有一个字符串,当我执行 var_dump($string)
时,输出结果如下:
string 'ls -al
free -m' (length=16)
我该如何查看此处隐藏的特殊字符?例如,需要知道它们是\n
还是

或其他什么。
谢谢。
php file.php | cat -e
$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.
你可以使用:
preg_match("/(&#[0-9]+;)|[\t\r\n]/", $string, $matches);
print_r($matches);
6c73202d616c0d0a66726565202d6d
,使用从十六进制到ASCII的转换器输出ls -al??free -m
,请注意那些??。它们应该是\n。有任何想法发生了什么? - Justin0d0a
只是一个 CRLF Windows 换行符。 - deceze