0

ダウンロードにwgetを使用すると成功しますが、動作しません。exec_shell() または、curlを使用しようとしました。別の質問でJoeがこのサイトsystem から教えてくれたサイトをダウンロードするためのコードです。

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 に答える