wget在php exec中失败

时间:2012-04-03 21:14:40

标签: php exec wget

我有一个小脚本,我正在尝试运行,但它在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.

我尝试将所有命令移动到一行,然后再次死亡。我究竟做错了什么?如何在此脚本中检索错误?为exec中的结果添加第3个参数将返回空。

我正在使用它作为参考https://stackoverflow.com/a/1432161/763468

这些命令在SSH控制台中运行。

2 个答案:

答案 0 :(得分:2)

首先,我认为您不需要在文件名

之后使用分号
-p http://site.com/ac_landing.php;

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

答案 1 :(得分:0)

您是否每次exec来电尝试一个命令?

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");