过去几周,我一直在使用我找到并修改过的脚本从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选项无济于事,但是当我去Terminal并输入它时,它的效果非常好:
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脚本不起作用?
感谢任何帮助!
答案 0 :(得分:3)
作为附注,如果您尝试访问https iTunes页面,则可能需要设置以下内容:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
答案 1 :(得分:2)
对我来说很好。这里有几件事要考虑:
$GET['appID']
已设定吗?也许脚本是通过POST运行的?ini_set('display_errors', false);
,看看是否有任何通知/警告/错误。