1

私がやろうとしている...

<?php $content = `echo 'h1 happy days' | jade`; ?>

しかし、それは何も返しません。他のコマンドは(例えばls

パスにjadeを追加して/bin、コマンドラインからは機能するがphp内からは機能しないリンクを作成してみました。

私は何が間違っているのですか?

編集:

コマンドラインから:

bash-3.2$ pwd
/Users/billy/test/website-clear
bash-3.2$ echo 'h1 happy days' | jade
<h1>happy days</h1>bash-3.2$ which jade
/bin/jade
bash-3.2$ 
4

2 に答える 2

1

自分に適したオプションが他に2つあります。1。より高度な制御が必要な場合は、proc_open:

    $handle = proc_open("jade", array( array("pipe", "r"), array("pipe", "w"), array("pipe", "w")), $pipes);
    fwrite($pipes[0], 'h1 happy days');
    fclose($pipes[0]);
    $result = stream_get_contents($pipes[1]);
    return $result;

2. execの使用:

    exec("echo 'h1 happy days' | jade", $output, $retval);
    return $output;

パスにjadeがあることを確認するか、jade実行可能ファイルへのフルパスを使用してください。

于 2012-08-23T20:22:29.603 に答える
0

システム機能を使用します。外部呼び出しは、オペレーティングシステムによって独自のコンテキストを作成し、オペレーティングシステムが独自のstdin / stdout/stderrを取得すると思います。代わりにこれを行ってください:

<?php $content = system("echo 'h1 happy days' | jade", $retval); ?>
于 2012-08-23T19:36:51.447 に答える