Сохранение файла XML на сервере через PHP
Есть ссылка: http://ol.partners/api/ApiXml_v2/a10deef8-b1f1-4ad1-a4e9-86de5bbdad0c
Она отдает файл XML
Мне нужен скрипт, который бы мог сохранить данный файл на сервере(скрипт будет в дальнейшем пускаться в CRON). Файл должен заменяться более новым(с тем-же названием).
Тот, кусок кода, который у меня есть сейчас выглядит так(естественно он не работает):
<?php
$file = "http://ol.partners/api/ApiXml_v2/a10deef8-b1f1-4ad1-a4e9-86de5bbdad0c"; //$_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);
}
?>
Заранее спасибо. Знаю, что для большинства данная задача очень проста.
Ответы (1 шт):
после первой строки кода где определена ссылка напишите что-то вида
file_put_contents("./data/out.xml", file_get_contents($file));
а остальное все удалите. "./data/" замените на корректный путь, куда хотите сохранить, и позаботьтесь о том, чтобы данная директория была доступна для записи юзеру от имени которого будет работать скрипт