使用cURL和PHP检索iTunes App Store XML

时间:2010-01-01 22:22:56

标签: php xml curl app-store

过去几周,我一直在使用我找到并修改过的脚本从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脚本不起作用?

感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

作为附注,如果您尝试访问https iTunes页面,则可能需要设置以下内容:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

答案 1 :(得分:2)

对我来说很好。这里有几件事要考虑:

  • 您确定$GET['appID']已设定吗?也许脚本是通过POST运行的?
  • 注释掉ini_set('display_errors', false);,看看是否有任何通知/警告/错误。
  • 脚本是否与curl命令行在同一个框中运行?