0

当我使用 wget 进行下载时,它成功但无法使用,exec_shell() 或者system 我尝试使用 curl 这里是下载站点的代码,Joe 在另一个问题中告诉我从这个站点

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
4

1 回答 1

1

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

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

php yourscript.php http://myurl.com

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

在 php.net查看官方手册

于 2011-07-19T09:11:35.333 回答