1

実行しようとしている小さなスクリプトがありますが、exec()

<pre><?php

    ini_set("display_errors", 1);

    $command = "wget --save-cookies cookies.txt \
                --post-data '***' \
                --keep-session-cookies \
                http://site.com/ac_login.php;

                wget --load-cookies cookies.txt \
                --keep-session-cookies \
                -p http://site.com/ac_landing.php;";

    exec($command, $output) or die('fail');

    foreach ($output as $num => $line) {

        echo $num + 1 . ": " . $line . "\n";
    }

?></pre>

\各行の最後にあるを削除すると、次の応答が返されます

1: wget: missing URL
2: Usage: wget [OPTION]... [URL]...
3: 
4: Try `wget --help' for more options.
5: wget: missing URL
6: Usage: wget [OPTION]... [URL]...
7: 
8: Try `wget --help' for more options.

すべてのコマンドを 1 行に移動しようとしましたが、再び停止します。私は何を間違っていますか?このスクリプトのエラーを取得するにはどうすればよいですか? 結果の 3 番目のパラメーターを追加すると、exec空が返されます。

これを参考に使用していますhttps://stackoverflow.com/a/1432161/763468

コマンドは SSH コンソールで機能します。

4

2 に答える 2

2

まず、ファイル名の後にセミコロンは必要ないと思います

-p http://site.com/ac_landing.php;

-p http://site.com/ac_landing.php
于 2012-04-03T21:19:37.437 に答える
0

exec呼び出しごとに 1 つのコマンドを試しましたか?

exec("wget --save-cookies cookies.txt --post-data '***' --keep-session-cookies http://site.com/ac_login.php");
exec("wget --load-cookies cookies.txt --keep-session-cookies -p http://site.com/ac_landing.php");
于 2012-04-03T21:21:40.040 に答える