2012-04-03 75 views
1

我有我试图运行一个脚本,但它在exec()wget的PHP中的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中为第三个参数添加结果将返回空白。

我使用这个参考https://stackoverflow.com/a/1432161/763468

的命令在SSH控制台工作。

+0

打印输出并粘贴到控制台中,但是您可以将所有内容与1行连接在一起并与$ var。=“”并删除最后一行;从命令作为托马斯赖特编辑 – ZiTAL 2012-04-03 21:24:49

+0

没有输出,因为'死' – 2012-04-03 21:43:25

+0

我的意思是打印wget命令,而不是结果,然后复制到控制台尝试 – ZiTAL 2012-04-04 07:22:56

回答

2

首先,我不认为你需要的文件名后分号

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

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

除此之外,它看起来像使用wget与exec()似乎产生频繁的问题。在StackOverflow上有很多类似的帖子。你可能也想看看其中的一些。 http://stackoverflow.com/questions/2528466/how-to-run-wget-from-php-so-that-output-gets-displayed-in-the-browser-window http://stackoverflow.com /问题/ 9889099/wget的上窗口,通PHP-EXEC-犯规工作 – 2012-04-03 21:23:30

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