如何从命令行下载站点中的文件,用php编写文件

Posted

技术标签:

【中文标题】如何从命令行下载站点中的文件,用php编写文件【英文标题】:how to download a file in a site from command line writing it in php 【发布时间】:2011-07-19 09:04:29 【问题描述】:

当我使用 wget 进行下载时,它是成功的,但它不适用于 exec_shell()system 然后我尝试使用 curl 这是乔在另一个问题中从this site 告诉我的下载网站的代码

function curl_download($Url)

// is cURL installed yet?
if (!function_exists('curl_init'))
    die('Sorry cURL is not installed!');


// OK cool - then let's create a new cURL resource handle
$ch = curl_init();

// Now set some options (most are optional)

// Set URL to download
curl_setopt($ch, CURLOPT_URL, $Url);

// Set a referer
curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");

// User agent
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");

// Include header in result? (0 = yes, 1 = no)
curl_setopt($ch, CURLOPT_HEADER, 0);

// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

// Download the given URL, and return output
$output = curl_exec($ch);

// Close the cURL resource, and free system resources
curl_close($ch);

return $output;

它正在用于下载页面,但我想将其更改为从命令行下载 如果你有更好的建议请告诉我

例如我用这个:

<?php
  $output=exec_shell('wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz');
?>

当我回应它时它不起作用

但是当我在命令行中输入它时,它会在 /root 上下载它:

wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz

【问题讨论】:

wgetcurl 都可以在命令行中完美运行。您可能需要使用您的 PHP 设置配置 shell_execsystem 使用的命令行,以使其也可以与 that 命令行一起使用。但这只是系统配置,与您在问题中输入的 PHP 代码无关。 那么...您是在问如何使用curl 命令行工具而不是PHP? 不,我知道如何从命令行下载我不知道如何在 PHP 中正确执行它 【参考方案1】:

您可以从命令行界面将任何参数传递给您的脚本。但如果没有,您必须在 php 中启用此类功能(只需在命令行中尝试 php -i)。

要在 php 脚本中使用参数,您应该使用 $argv 数组。例如:

php yourscript.php @987654321@

$url = $argv[1]; //it will contain first parameter passed to your script
curl_download($url);

查看official manual at php.net

【讨论】:

实际上你想要$argv[1],因为$argv[0] 始终是脚本本身的名称。

以上是关于如何从命令行下载站点中的文件,用php编写文件的主要内容,如果未能解决你的问题,请参考以下文章

用python如何给自己的电脑编写一个万能的下载器

如何将变量作为标准输入从 PHP 传递到命令行

如何直接用linux shell命令从windows下载文件?

mac命令行 从linux服务器下载文件到本地

用C语言编写一个随机点名程序

如何使用命令行从私有 github 存储库下载单个原始文件?