Intereting Posts
как правильно использовать функцию switch в php Как получить значения флажков в группе с PHP? Как включить файл меню .asp внутри php-файла? (Папка WordPress в папке ASP) Получить процентное значение процента процессора в php Хранить MySQL в массиве PHP для двух запросов добавление пространства имен при использовании SimpleXMLElement Laravel Gmail не работает, «Имя пользователя и пароль не принимаются. Выучить больше…" PHP Обнаружение, если ссылка URL-адреса исходного изображения приводит к «сломанному» изображению? Как добавить цифровую подпись (RSA, сертификат и т. Д.) В любой файл, используя PHP? Как проверить электронную почту и электронную почту уже существует или не проверять в Yii Framework? PHP-массив vs в описании метода и переменной AJAX терпит неудачу, в то время как данные получаются из цикла while () в php Файлы PHP отправляют только «parsererror» через AJAX Ошибка rmdir () с определенным именем файла? Доступ запрещен Как лучше всего в PHP читать последние строки из файла?

Загрузите файл из URL с помощью CURL

Я пытаюсь загрузить файл с использованием php-скрипта из следующего URL-адреса:

http://www.xcontest.org/track.php?t=2avxjsv1.igc 

Используемый мной код выглядит следующим образом, но он создает только пустые файлы для загрузки:

 $DLFile= "testfile.igc"; $DLURL="http://www.xcontest.org/track.php?t=2avxjsv1.igc"; $fp = fopen ($DLFile, 'w+'); $ch = curl_init($DLURL); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_FILE, $fp); curl_exec($ch); curl_close($ch); fclose($fp); 

Другая странная вещь: при вводе URL-адреса в веб-браузере я не получаю файл. Я могу загрузить файл только при нажатии ссылки на веб-сайте !.

Любые советы очень ценятся!

Дайте этому идти

 <?php $output_filename = "testfile.igc"; $host = "http://www.xcontest.org/track.php?t=2avxjsv1.igc"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $host); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, false); curl_setopt($ch, CURLOPT_REFERER, "http://www.xcontest.org"); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_HEADER, 0); $result = curl_exec($ch); curl_close($ch); print_r($result); // prints the contents of the collected file before writing.. // the following lines write the contents to a file in the same directory (provided permissions etc) $fp = fopen($output_filename, 'w'); fwrite($fp, $result); fclose($fp); ?> 

#

или если вы хотите поместить его в цикл для разбора нескольких ссылок … вам нужны некоторые функции .. вот приблизительная идея ….

 <?php function collect_file($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, false); curl_setopt($ch, CURLOPT_REFERER, "http://www.xcontest.org"); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_HEADER, 0); $result = curl_exec($ch); curl_close($ch); return($result); } function write_to_file($text,$new_filename){ $fp = fopen($new_filename, 'w'); fwrite($fp, $text); fclose($fp); } // start loop here $new_file_name = "testfile.igc"; $url = "http://www.xcontest.org/track.php?t=2avxjsv1.igc"; $temp_file_contents = collect_file($url); write_to_file($temp_file_contents,$new_file_name) // end loop here ?>