как скачать файл на сайте из командной строки написав его в php - PullRequest
0 голосов
/ 19 июля 2011

когда я использую wget для загрузки, он успешен, но не будет работать с exec_shell() или system тогда я попытался использовать curl Вот код для загрузки сайта, который Джо в другом вопросе сказал мне с этого сайта

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

1 Ответ

1 голос
/ 19 июля 2011

Вы можете передать любые параметры в ваш скрипт из интерфейса командной строки.Но вы должны включить такую ​​функцию в php, если нет (просто попробуйте php -i в командной строке).

Чтобы использовать параметры в скрипте php, вы должны использовать массив $argv.Например:

php yourscript.php <a href="http://myurl.com" rel="nofollow">http://myurl.com</a>

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

Ознакомьтесь с официальным руководством на php.net

...