我试图通过苹果的API (API接口)检索应用程序的版本
应用程序的ID是: 583457917
Php代码
<?php
header('Content-type: application/json');
$json = file_get_contents('https://itunes.apple.com/lookup?id=583457917');
$jsonIterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator(json_decode($json, TRUE)),
RecursiveIteratorIterator::SELF_FIRST);
foreach ($jsonIterator as $key => $val) {
if(!is_array($val)) {
if($key == "version"){
echo "$key => $val\n";
}
}
}
?>file_get_contents response
{
resultCount: 1,
results: [
{
kind: "software",
features: [ ],
supportedDevices: [
"iPhone4",
"iPadThirdGen",
"iPodTouchourthGen",
"iPad2Wifi",
"iPadMini4G",
"iPhone4S",
"iPhone-3GS",
"iPadFourthGen4G",
"iPad23G",
"iPhone5s",
"iPhone5c",
"iPadThirdGen4G",
"iPodTouchFifthGen",
"iPhone5",
"iPadMini",
"iPadFourthGen"
],
isGameCenterEnabled: false,
screenshotUrls: [
"http://a3.mzstatic.com/us/r30/Purple4/v4/32/d3/d1/32d3d14b-4f95-70cd-74e4-246faaab4b2c/screen1136x1136.jpeg",
"http://a4.mzstatic.com/us/r30/Purple/v4/32/b7/cf/32b7cf9c-37c0-469e-2656-bbdecb4b3320/screen1136x1136.jpeg",
"http://a3.mzstatic.com/us/r30/Purple6/v4/91/8c/19/918c19ec-b990-db81-48a8-3c300b966e89/screen1136x1136.jpeg",
"http://a5.mzstatic.com/us/r30/Purple/v4/95/84/f8/9584f850-cb29-5f46-23d0-de6c9c4ec69d/screen1136x1136.jpeg",
"http://a3.mzstatic.com/us/r30/Purple/v4/d2/9a/d2/d29ad2ea-9a8d-d4d6-ab15-1fb420021686/screen1136x1136.jpeg"
],
ipadScreenshotUrls: [ ],
artworkUrl60: "http://a1928.phobos.apple.com/us/r30/Purple/v4/6c/bd/a8/6cbda8ae-7f06-ba1c-2952-c5d60d7acd5c/appicon.png",
artworkUrl512: "http://a412.phobos.apple.com/us/r30/Purple/v4/da/63/a2/da63a27f-2422-9961-8865-3f65572a306f/mzl.ytcyzmlm.png",
artistViewUrl: "https://itunes.apple.com/us/artist/nicolo-monili/id553006868?uo=4",
artistId: 553006868,
artistName: "Nicolo Monili",
price: 0,
version: "1.1.3",
description: ""Io programmo" è l'app perfetta per i "novelli programmatori" , perché ? Bè , in quest'app potrete trovare più di 100 codici sorgenti pronto all'uso , pronti ad essere eseguiti e testati da ognuno di voi , anche grazie alla comoda funzione di invio del codice che ci interessa tramite email. All'interno dell'app troverete codice sorgenti di programmi Java e Javascript. I programmi Java sono divisi in 4 categorie principali : Programmi Java semplici senza l'utilizzo di cicli ed array Programmi Java con l'utilizzo di Cicli (while/for/do while) Programmi Java con l'utilizzo di Cicli , Array , Matrici e Classi Programmi Java con l'utilizzo delle Stringhe e della Math Random I programmi Javascript invece non sono suddivisi in categorie. L'app è pienamente compatibile con iPhone 5 ed iOS 6. Per qualsiasi domanda riguardante uno , o più , codice sorgenti presenti nell'app utilizzate la finestra "info" dell'app :) Buona programmazione !",
currency: "USD",
genres: [
"Utilities",
"Education"
],
genreIds: [
"6002",
"6017"
],
releaseDate: "2012-12-10T20:56:37Z",
sellerName: "Nicolo Monili",
bundleId: "com.nicolomonili.ioprogrammo",
trackId: 583457917,
trackName: "Io Programmo",
primaryGenreName: "Utilities",
primaryGenreId: 6002,
releaseNotes: "* Bugfixes",
minimumOsVersion: "6.0",
formattedPrice: "Free",
wrapperType: "software",
trackCensoredName: "Io Programmo",
languageCodesISO2A: [
"EN"
],
fileSizeBytes: "3618569",
contentAdvisoryRating: "4+",
artworkUrl100: "http://a412.phobos.apple.com/us/r30/Purple/v4/da/63/a2/da63a27f-2422-9961-8865-3f65572a306f/mzl.ytcyzmlm.png",
trackViewUrl: "https://itunes.apple.com/us/app/io-programmo/id583457917?mt=8&uo=4",
trackContentRating: "4+"
}
]
}如前所述,我只知道应用程序的版本,但是foreach不只是打印版本信息,为什么?
预测响应
0 => iPhone-3GS
0 => http://a3.mzstatic.com/us/r30/Purple4/v4/32/d3/d1/32d3d14b-4f95-70cd-74e4-246faaab4b2c/screen1136x1136.jpeg
version => 1.1.3
0 => Utilities
0 => 6002
0 => EN发布于 2014-07-30 18:13:53
这是因为当将字符串解析为int时,计算结果为0。由于您使用的是一般等效比较器(==),因此这些值被认为是“等效的”。
要克服这一问题,请对比较(===)使用严格的类型检查:
foreach ($jsonIterator as $key => $val) {
if(!is_array($val)) {
if($key === "version"){
echo "$key => $val\n";
}
}
}您可能对阅读PHP类型比较表的documentation页面感兴趣。
https://stackoverflow.com/questions/25043978
复制相似问题