Это то, что я пытаюсь сделать: загрузить xml VAST из URL-адреса и сохранить локально в XML-файле на PHP. Для этого я использую file_get_contents и file_put_contents. это скрипт я использую:PHP file_get_contents и VAST xml
<?php
$tid=time();
$xml1 = file_get_contents('http://ad.afy11.net/ad?enc=4&asId=1000009566807&sf=0&ct=256');
file_put_contents("downloads/file1_$tid.xml", $xml1);
echo "<p>file 1 recorded</p>";
?>
URL-адрес в вопросе реальный URL, который будет поставлять XML VAST код. Моя проблема заключается в том, что при сохранении де файла он будет писать пустой VAST тег:
<?xml version="1.0" encoding="UTF-8"?> <VAST version="2.0"> </VAST>
Но если я бегу на Firefox это будет на самом деле поставить код:
<VAST version="2.0"><Ad id="Adify"><Wrapper><AdSystem>Eyeblaster</AdSystem><VASTAdTagURI>http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=is&c=23&pl=VAST&pli=6583370&PluID=0&pos=7070&ord=4288438534]&cim=1</VASTAdTagURI><Impression>http://ad.afy11.net/ad?ipc=NMUsqYdyBUCjh4-i2HwWfK1oILM2AAAAN6-rBkSy8JNMZcuzAlj1XlSySpo6Hi7xEYULS+UgOVN5D3UuhFUVSWbFHoLE-+3su0-QnGgZgMJyiTm-R6O+yQ==</Impression><Creatives/></Wrapper></Ad></VAST>
Не 100% от времени они ограничивают количество запросов, но чаще всего это делается, когда я пытаюсь сохранить файл с помощью PHP-скрипта.
Это способ сделать PHP-скрипт похожим на браузер ???? Я не знаю, является ли это правильным вопросом, но это единственное, что я могу вспомнить, почему я получаю пустой тег VAST при использовании php-скрипта и получаю полный тег при использовании браузера.
любые идеи ???
спасибо :)
Update: После выполнения некоторых дополнительных исследований, я нашел некоторую информацию о stream_context_create функции, но я не был в состоянии дублировать результаты в браузере.
вот мой новый код:
<?php
$tid=time();
$opts = array('http' =>
array(
'method' => 'GET',
//'user_agent ' => "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100301 Ubuntu/9.10 (karmic) Firefox/3.6",
'header' => array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8
'
),
)
);
$context = stream_context_create($opts);
$xml1 = file_get_contents('http://ad.afy11.net/ad?enc=4&asId=1000009566807&sf=0&ct=256');
file_put_contents("downloads/file1_$tid.xml", $xml1);
echo "<p>file 1 recorded</p>";
echo "<textarea rows='6' cols='80'> $xml1 </textarea> ";
echo "<br><iframe src='http://ad.afy11.net/ad?enc=4&asId=1000009566807&sf=0&ct=256' width='960' height='300'></iframe>";
?>
Я также addded в IFRAME для сравнения, когда браузер получает нужный файл и когда функция PHP нет.
Обратитесь к поставщику этой услуги за вариантами поддержки. – hakre
Речь идет не о продавце, а о том, что делают file_get_contents по-другому, что firefox. – pcapelo
Ну, это легко сказать: все и ничего. Все в том смысле, что эта функция полностью отличается от firefox. Ничего, потому что даже когда я открываю этот URL-адрес в браузере, я получаю то, что получает файл_get_contents. Вот почему лучше обратиться к поставщику этих веб-сервисов для поддержки первого уровня, чтобы понять, как нужно выполнять запросы, когда такие вещи меняются и т. Д. И т. Д. – hakre