出於某種原因,我不能得到信息返回的JSONP字符串,JSONP - > json_decode()
<?php
// Created by Talisman 01/2010 ★✩
$vorto = $_GET['vorto']; // Get the Word from Outer Space and Search for it!
if (isset($vorto))
{
echo $vorto;
} else {
$Help = "No Vorto -> add ?vorto=TheWordYouWant to the end of this website";
echo $Help;
}
// Now Lets Search Alex's Vortaro, It uses jsonp
// ex. http://vortaro.us.to/ajax/epo/eng/petas/?callback=?
// Future Feature inproved language functinality
$AVurl1 = "http://vortaro.us.to/ajax/epo/eng/";
$AVurl2 = "/?callback=";
$AVfinalurl= $AVurl1 . $vorto . $AVurl2;
echo $AVfinalurl . ' </br> '; // DEBUG CODE
$AVcontent = file_get_contents($AVfinalurl) ;
echo $AVcontent . ' </br> '; // DEBUG CODE
//★✩爲什麼這下一行不行?
$AVDecode = json_decode($AVcontent);
// /*
if(isset($AVcontent)) { // DEBUG CODE
echo "json_decode set AVcontent" . ' </br> ';
} else {
echo "something fishy here" . ' </br> ';
}
if (empty($AVcontent)){
echo "EMPTY EMPTY" . ' </br> ';
} else {
echo "Not Empty". ' </br> ';
}
echo $AVDecode . ' </br> ';
// */
// Why can't I echo or access information with $AVDecode? Is it something with
// jsonp?
?>
這是我的結果
komputilojhttp://vortaro.us.to/ajax/epo/eng/komputiloj/?callback=
({"text":"komputilo: computer"})
json_decode set AVcontent
Not Empty
我應該看到回聲$ AVDecode
我得到了這個致命錯誤:調用未定義的函數json_last_error()在/Users/briancarpenter/Sites/Vortoj/preniVortoj.php在線53與回聲json_last_error() – Klanestro 2010-01-20 12:40:47
哦,它的> 5.3.0只。您可能有一個較舊的PHP版本。等一下,我會運行它。你能不能指出你從數據源中得到什麼? – 2010-01-20 12:48:45
解碼:({「text」:「peti:ask,ask for,beg,bid,request」})適用於我*如果刪除了括號*'()'。 json_decode無法處理jsonp。您需要手動刪除括號,或者(更好)使您的數據源輸出適當的json。 – 2010-01-20 12:51:19