Скачать xml по ссылке .php

281
11 января 2019, 22:00

Есть ссылка на файл - site.ru/export.php (updated: к содержимому php доступа нет) По этой ссылке формируется xml файл, если по ней перейти xml открывается прямо в браузере. Задача - скачать файл средствами php себе на хостинг. Файлы .xml с других источников скачиваю просто

copy($url, $file);

Этот файл так не скачать. Подскажите как правильно это сделать, пожалуйста! Уточнение: Мне нужно скачать файл xml к себе на сервер со стороннего сервера. Файл там формируется средствами php и ссылка site.ru/export.php. При ее открытии в браузере формируется xml файл. Как его скачать средствами php на мой сервер?

Answer 1
<?php    
         $xls = 
         "<?xml version='1.0' encoding='UTF-8'?>
         <note>
         <to>Tove</to>
         <from>Jani</from>
         <heading>Reminder</heading>
         <body>Don't forget me this weekend!</body>
         </note>";
         header('Content-Description: File Transfer');
         header("Content-Disposition: attachment; filename=XMLFile.xml");
         header("Content-Type: application/xml; charset=utf-8");
         header('Content-Transfer-Encoding: binary');
         header('Expires: 0');
         header('Cache-Control: must-revalidate');
         header('Pragma: public'); 

         print_r($xls); 
?>

Update

<?php    
       $file = "https://site.kz/file-xml.php"; //$_POST['link'] $_GET['link']
    if (!empty($file)) { 
         header('Content-Description: File Transfer');
         header("Content-Disposition: attachment; filename=XMLFile.xml");
         header("Content-Type: application/xml; charset=utf-8");
         header('Content-Transfer-Encoding: binary');
         header('Expires: 0');
         header('Cache-Control: must-revalidate');
         header('Pragma: public'); 
         print_r(file_get_contents($file)) ;
    } 
?> 

update 0.1

<?php    
      $file = "http://hadleybags.ru/bitrix/catalog_export/partner.php"; //$_POST['link'] $_GET['link']
    if (!empty($file)) { 
         header('Content-Description: File Transfer');
         header("Content-Disposition: attachment; filename=XMLFile.xml");
         header("Content-Type: application/xml; charset=utf-8");
         header('Content-Transfer-Encoding: binary');
         header('Expires: 0');
         header('Cache-Control: must-revalidate');
         header('Pragma: public'); 
            $xml_data = file_get_contents($file);
            $ch = curl_init($file);
            curl_setopt($ch, CURLOPT_PUT, 1);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data);
            $output = curl_exec($ch);
            curl_close($ch);
    }  
?>
Answer 2

Вы забыли http:// в $url добавить

$url = "http://site.ru/export.php"; 
$str = file_get_contents($url); 
file_put_contents('file.xml',$str); 
READ ALSO
json распарсить из php

json распарсить из php

формирую вот такой json

194
Curl контент поместить в массив php

Curl контент поместить в массив php

Всем привет, имеется информация полученная через CURL с содержимым: login=Вася Пупкин city=Москва tel=0 123 456 567 sex=male

196
PHP замена аттрибутов в HTML теге

PHP замена аттрибутов в HTML теге

Прошу советов от специалистов в PHP, по такой задаче:

165
Что за ключевое слово такое в PHP?

Что за ключевое слово такое в PHP?

Наткнулся в ходе изучения чужого кода на Yii2 с такой вот штукой

169