【问题标题】:Downloading and saving file by using wget in shell_exec在 shell_exec 中使用 wget 下载和保存文件
【发布时间】:2011-07-11 11:08:34
【问题描述】:

我想从命令行下载文件 当我在 shell 中运行命令时它会工作,但是当我想在 PHP 中执行它时,没有结果

$cmd='wget http://cvs.snort.org/viewcvs.cgi/snort/rules/dns.rules'
$output=shell_exec($cmd);
echo "<pre>$output</pre>";

我只是想从这个网站下载

任何帮助将不胜感激

我该如何纠正这个问题?

如果解决方案是Curl,我该怎么写

【问题讨论】:

  • 您可以更正代码的突出显示!

标签: php wget shell-exec


【解决方案1】:

使用cURL。喜欢this

【讨论】:

  • wget 没有解决办法?
  • 有。但是,如果您不是绝对需要,那么炮轰是不好的做法(并且是一种不好的习惯,想想未来的安全隐患)。
  • curl中有很多函数ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_NOBODY, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($ch);
  • 你谷歌了吗?本教程看起来很简单,因为它得到了jonasjohn.de/snippets/php/curl-example.htm
  • 我用过,它显示了内容,但是我搜索了我下载的文件,它没有被下载
【解决方案2】:

file_get_contents( 'http://cvs.snort.org/viewcvs.cgi/snort/rules/dns.rules');

做同样的事情

【讨论】:

  • 是的!我知道了,它会显示输出,但我也想下载文件。
  • echo file_put_contents('cvs.snort.org/viewcvs.cgi/snort/rules/dns.rules', $file_path );
  • marabutt 它只是显示我也想下载的内容,顺便非常感谢你
  • “下载”是什么意思?不下载就无法显示内容...
  • 为什么不呢?它是来自该站点的链接
【解决方案3】:

默认情况下 wget 将文档写入文件

对于阻止默认使用选项: wget -q -O /dev/stdin google.com

【讨论】:

  • 是的,如果你使用 cURL 会更好。
  • 我必须在哪里使用它?在 shell 或 exec_shell 中?
  • 使用 cURL。如果您没有使用 file_get_contents 的 cURL。但是如果你想要wget。您必须在 exec_shell 中使用该命令
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多