如何使用PHP从iTunes搜索API JSON页面提取值?
我正在创建一个需要最新iPhone应用程序价格的网站,比如appshopper,多亏stackoverflow上的gbc,我被引导使用iTunes搜索API。我对PHP有点熟悉,虽然我不经常练习,也不熟悉JSON的使用或如何从中提取值。我试着在这里使用教程:为了让它工作,虽然我没有运气,没有数据被提取,我也没有足够的技能来解决它。我还尝试了许多其他教程,尽管上面的一个似乎最符合我的需要。这将是站点的一个必要部分,尽管它不是站点的关键组件,所以它不需要非常健壮,只需要工作。我将感谢任何帮助、建议或链接 这是我尝试使用的代码,我不确定这是否无法实现我想要的功能,或者我是否犯了一些我不确定的小错误,因为我只是遵循了一个教程,不知道我在做什么如何使用PHP从iTunes搜索API JSON页面提取值?,php,json,itunes,Php,Json,Itunes,我正在创建一个需要最新iPhone应用程序价格的网站,比如appshopper,多亏stackoverflow上的gbc,我被引导使用iTunes搜索API。我对PHP有点熟悉,虽然我不经常练习,也不熟悉JSON的使用或如何从中提取值。我试着在这里使用教程:为了让它工作,虽然我没有运气,没有数据被提取,我也没有足够的技能来解决它。我还尝试了许多其他教程,尽管上面的一个似乎最符合我的需要。这将是站点的一个必要部分,尽管它不是站点的关键组件,所以它不需要非常健壮,只需要工作。我将感谢任何帮助、建议或
<input type="text" id="query" /><button>search</button><br />
<div id="results">
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
var url='http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsLookup?id=';
var query;
$('button').click(function(){
query=$("#query").val();
$.getJSON(url+query,function(json){
$.each(json.results,function(i,app){
$("#results").append('<p>'+app.trackName+'</p>');
});
});
});
});
</script>
搜索
$(文档).ready(函数(){
var url='1〕http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsLookup?id=';
var查询;
$(“按钮”)。单击(函数(){
query=$(“#query”).val();
$.getJSON(url+查询,函数(json){
$.each(json.results,function(i,app){
$(“#结果”).append(“”+app.trackName+””);
});
});
});
});
谢谢,我真的很感谢任何人能提供的帮助。您在该代码中遇到的错误是
XMLHttpRequest cannot load http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsLookup?id=s. Origin http://www.bgsisson.com is not allowed by Access-Control-Allow-Origin.
它之所以这样说,是因为呼叫的来源与目的地不在同一域、端口或协议上。有关此的详细信息,请单击此处->()
所有现代web浏览器都对网络连接施加安全限制,包括对XMLHttpRequest的调用。此限制阻止脚本或应用程序连接到网页最初来自的服务器以外的任何web服务器(如果在首选项中启用了此选项,则Internet Explorer将允许跨域请求)。如果您的web应用程序和应用程序使用的XML数据都直接来自同一台服务器,则不会遇到此限制
您需要做的是使用服务器(PHP)调用,然后将该信息传递给客户端(JavaScript)
你在哪里托管你的代码?是否安装了PHP和cURL?你在用什么操作系统?我可以用这些信息在这个问题上为您提供更多帮助。这应该可以帮助您开始 /wsLookup.php(苹果API的服务器“代理”)
/index.html(通过“代理”访问Apple API的客户端代码)
$(文档).ready(函数(){
var url='1〕http://www.bgsisson.com/wsLookup.php';
$(“按钮”)。单击(函数(){
query=$(“#query”).val();
$.getJSON(url,{id:query},函数(json){
警报(“价格:+json.results[0].price”);
警报(“说明:“+json.results[0].description”);
警报(“artistName:+json.results[0].artistName”);
//使用html控制台检查此对象的其余部分
log(json);
});
});
});
搜索
如果你想看的话,我把这段代码放在主机上。这是Yelp应用程序的id,284910350。您应该使用。这样,您就不需要编写任何服务器端代码。我相信我没有安装cURL,我会检查,谢谢。使用此代码创建一个PHP页面,然后检查此页面中的字符串“cURL”谢谢,我检查了,它说我已经安装了PHP和cURL。我的Web服务器是基于linux的。非常感谢,这正是我需要帮助的地方。我真的很感激。
<?php
// the id for the Yelp app
$id = "284910350";
if (isset($_GET["id"])) {
// Get the id from the ajax call
$id = $_GET["id"];
}
// add the id to the url
$apiUrl = "http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsLookup?id=".$id;
// setup the cURL call
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $apiUrl);
curl_setopt($c, CURLOPT_HEADER, false);
// make the call
$content = curl_exec($c);
curl_close($c);
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var url = 'http://www.bgsisson.com/wsLookup.php';
$('button').click(function() {
query = $("#query").val();
$.getJSON(url, {id:query}, function(json) {
alert("price: " + json.results[0].price);
alert("description: " + json.results[0].description);
alert("artistName: " + json.results[0].artistName);
// use html console to inspect the rest of this object
console.log(json);
});
});
});
</script>
<input type="text" id="query"/>
<button>search</button>
<br/>
<div id="results"></div>