download — загрузка файла с URL с использованием скрипта PHP

Привет я хочу скачать около 250 файлов с URL-адреса, которые находятся в последовательности. Я почти закончил с этим! Просто проблема в том, что структура моего URL такова:
http://lee.kias.re.kr/~newton/sann/out/201409//SEQUENCE1.prsa

Где id находится в последовательности, но имя файла «SEQUENCE1.psra» имеет формат «SEQUENCE? .Psra».
Есть ли способ указать этот формат файла в моем коде? А также есть другие файлы в папке, но только 1 с «.psra» ext.

Code:
<?php
// Source URL pattern
//$sourceURLOriginal = "http://www.somewebsite.com/document{x}.pdf";
$sourceURLOriginal = " http://lee.kias.re.kr/~newton/sann/out/201409/{x}/**SEQUENCE?.prsa**";
// Destination folder
$destinationFolder = "C:\\Users\\hp\\Downloads\\SOP\\ppi\\RSAdata";
// Destination file name pattern
$destinationFileNameOriginal = "doc{x}.txt";
// Start number
$start = 7043;
// End number
$end = 7045;
$n=1;
// From start to end
for ($i=$start; $i<=$end; $i++) {
// Replace source URL parameter with number

$sourceURL = str_replace("{x}", $i, $sourceURLOriginal);

// Destination file name
$destinationFile = $destinationFolder . "\\" .
str_replace("{x}", $i, $destinationFileNameOriginal);
// Read from URL, write to file
file_put_contents($destinationFile,
file_get_contents($sourceURL)
);
// Output progress
echo "File #$i complete\n";
}
?>

Это работает, если я прямо указываю URL!

Ошибка:
Предупреждение: file_get_contents ( http://lee.kias.re.kr/~newton/sann/out/201409/7043/SEQUENCE?.prsa): не удалось открыть поток: неверный аргумент в C: \ xampp \ htdocs \ SOP \ download.php в строке 37
Файл № 7043 завершен

Это делает файлы, но они пусты!

Если есть способ, которым я могу скачать, то вся папка (названная с идентификатором в последовательности) также может работать! Но как мы можем скачать всю папку в папке?

1

Решение

Возможно, функция file_get_contents () не работает на вашем сервере.
Попробуйте этот код:

    function url_get_contents ($Url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
1

Другие решения

Ну вот.
Я не тестировал весь file_get_contents, file_put_contents часть, но если вы скажете, что добавление файлов (хотя и пустых), то я предполагаю, что это все еще работает здесь …

Все остальное работает отлично. Я оставил var_dump() в, так что вы можете увидеть, как выглядит возвращение.

Я сделал то, что предложил в своем комментарии. Откройте папку, проанализируйте список файлов, выберите нужное имя файла.
Кроме того, я не знаю, если вы читаете мои оригинальные комментарии, но $sourceURLOriginal в начале есть дополнительное место, которое могло бы вызвать проблемы.

<?php

$start=7043;
$end=7045;

$sourceURLOriginal="http://lee.kias.re.kr/~newton/sann/out/201409/";
$destinationFolder='C:\Users\hp\Downloads\SOP\ppi\RSAdata';

for ($i=$start; $i<=$end; $i++) {
$contents=file_get_contents($sourceURLOriginal.$i);
preg_match_All("|href=[\"'](.*?)[\"']|",$contents,$hrefs);
$file_list=array();
if (empty($hrefs[1])) continue;
unset($hrefs[1][0],$hrefs[1][1],$hrefs[1][2],$hrefs[1][3],$hrefs[1][4]);
$file_list=array_values($hrefs[1]);
var_dump($file_list);

foreach ($file_list as $index=>$file) {
if (strpos($file,'prsa')!==false) {
$needed_file=$index;
break;
}
}

file_put_contents($destinationFolder.'\doc'.$i.'.txt',
file_get_contents($sourceURLOriginal.$i.'/'.$file_list[$needed_file])
);

}
1

По вопросам рекламы [email protected]