3

PHP改行と特殊文字で何をしているのかを理解しようとしています。var_dump($string)出力を行うと、文字列があります。

string 'ls -al

    free -m' (length=16)

ここに埋め込まれている特殊文字を表示するにはどうすればよいですか? たとえば、それらが何であるか、または何であるかを確認する必要があり\nます&#10

ありがとう。

4

3 に答える 3

5

印刷できない文字を表示する最良の方法は、印刷することbin2hex($string)です。これにより、文字列の実際のバイナリ ダンプが得られます。これを、お気に入りのASCII テーブルまたは文字列のエンコーディングに固有の他のテーブルと比較してください。

于 2012-09-12T06:27:36.560 に答える
2

UNIX 環境で PHP Cli を使用してコマンドを実行している場合は、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.
于 2012-09-12T06:28:18.120 に答える
0

あなたが使用することができます:

preg_match("/(&#[0-9]+;)|[\t\r\n]/", $string, $matches);
print_r($matches);
于 2012-09-12T06:47:18.023 に答える