3

私はphpファイルがスクリプトを呼び出して次のように出力を出力します

    $ output = shell_exec('/ usr / bin / python hello.py');
    エコー$出力;

印刷します。

    b'合計16\ndrwx --- rx2oaeユーザー4096Jul3114:21。\ndrwxr-x--x+ 9 oae root 4096 Jul 26 13:59 .. \ n-rwx --- rx1oaeユーザー90 8月3日11:22hello.py\ n-rwx --- rx1oaeユーザー2258月3日11:22index.php\ n '

しかし、それはこのようになるはずです。

    合計16K
    drwx --- rx2oaeユーザー4.0K7月31日14:21./
    drwxr-x--x + 9 oae root 4.0K Jul 26 13:59 ../
    -rwx---rx1oaeユーザー90Aug3 11:22 hello.py *
    -rwx---rx1oaeユーザー2258月3日11:22index.php*

\ n文字を表示しないでください。これを解決するにはどうすればよいですか?

4

4 に答える 4

5

これは仕事になることができます

$output=shell_exec('/usr/bin/python hello.py');
echo "<pre>";
print_r($output);
echo "</pre>";
于 2012-08-03T09:13:53.267 に答える
0

Python 3 スクリプトからの出力のようです。

from subprocess import check_output as qx
print(qx(['ls']))

サブプロセスはバイトを返し、print 関数はその表現をb'...\n...''\n' が 2 文字 (改行ではない) として出力します。

qx() の戻り値を Unicode に変換してから出力するか、バイトをそのまま書き込むことで修正できます。

sys.stdout.buffer.write(qx(['ls']))
于 2012-08-03T12:32:01.797 に答える
0

別の方法として、文字列を<pre>...</pre>タグで囲みます。

于 2012-08-03T08:45:01.263 に答える
0

この文字列を Web で印刷しようとしていると思います。その場合、PHP は \n 文字で動作しない可能性があり、代わりに、<br/> PHP にはこの文字列の変換を処理する組み込み関数があると想定されます。

http://php.net/manual/en/function.nl2br.php

于 2012-08-03T08:39:37.767 に答える