Я извлекал информацию из iTunes App Store последние пару недель, используя сценарий, который я нашел и изменил. Все работало нормально, пока пару дней назад, когда я понял, что XML больше не генерируется. Вот код сценария, который генерирует XML:
<?php header("Content-type: text/plain"); ini_set('display_errors', false); if(isset($_GET['appID'])) { $appID = (int)stripslashes($_GET['appID']); $url = "http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=" . $appID . "&mt=8"; $useragent = "iTunes/9.0.2 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.21.8"; $header = array("X-Apple-Store-Front: 143441-1"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); $result = curl_exec($ch); curl_close($ch); echo $result; } ?>
Поэтому я добавил параметр HTTPHEADER безрезультатно, но кикер – это то, что он отлично работает, когда я перехожу на терминал и набираю это:
curl -s -A "iTunes/9.0.2 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.21.8" -H "X-Apple-Store-Front: 143441-1" 'http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=339038562&mt=8'
Он возвращает XML, который мне нужен, но почему скрипт PHP не работает?
Цените любую помощь!
Прекрасно работает для меня. Вот несколько вещей, о которых нужно подумать:
$GET['appID']
? Возможно, сценарий запускается через POST? ini_set('display_errors', false);
и посмотрите, появляются ли какие-либо уведомления / предупреждения / ошибки. Как примечание, если вы пытаетесь открыть страницу https iTunes, вам может потребоваться установить следующее:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);