index.php,echo json_encode後的結果為:
{"11":{"l_id":"11","l_title":"CITS-香港觀光一天遊【品質純玩】"},"12":{"l_id":"12","l_title":"test"}}
然後用戶端代碼(client.php)如下:
$curlPost='key='.urlencode($key);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);curl_close($ch);echo json_decode($data,true);
得到的結果也是
{"11":{"l_id":"11","l_title":"CITS-香港觀光一天遊【品質純玩】"},"12":{"l_id":"12","l_title":"test"}}
請問要如何才能將其變成如下的方式呢,謝謝了
Array
(
[11] => Array
(
[l_id] => 11
[l_title] => CITS-香港觀光一天遊【品質純玩】
)
[12] => Array
(
[l_id] => 12
[l_title] => test
)
)
回複討論(解決方案)
因為我想將得到的結果,再插入到資料庫,就要用到
foreach($arr as $f)
但是,不是array形式的就沒辦法了
因為我想將得到的結果,再插入到資料庫,就要用到
foreach($arr as $f)
但是,不是array形式的就沒辦法了
我的目的就是,有a,b兩個站,a站上傳了很多東西也有很多表,b站要用到a站的1,2兩個表,我就想去獲得a的1,2表,然後插入到b站的資料庫裡,所以在a站有http://www.cits-sz.net/api/index.php這個檔案,然後在b站用client.php去擷取進行相關的操作。
那你就再 json_decode 一次
$s = '{"11":{"l_id":"11","l_title":"CITS-香港觀光一天遊【品質純玩】"},"12":{"l_id":"12","l_title":"test"}}';print_r(json_decode($s,1));
Array( [11] => Array ( [l_id] => 11 [l_title] => CITS-香港觀光一天遊【品質純玩】 ) [12] => Array ( [l_id] => 12 [l_title] => test ))
很奇怪啊,我用這一句,curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');顯示的就是序列化的
用這一句curl_setopt($ch,CURLOPT_URL,'localhost/szgl/api/index.php');這是本地就正常
為什麼本地和上傳到服務得到的結果不同呢??在本地就是array,在伺服器就變成string了
訪問 http://www.cits-sz.net/api/index.php
得:
無許可權訪問
我不好說什麼了
訪問 http://www.cits-sz.net/api/index.php
得:
無許可權訪問
我不好說什麼了
直接存取這個不行的,後面有一個key的,
是這個
http://www.cits-sz.net/api/index.php?key=01f34958ba730edc2ca30d65245dd6a0
訪問 http://www.cits-sz.net/api/index.php
得:
無許可權訪問
我不好說什麼了
我把這個當成用戶端的,暫時測試,地址為
http://www.cits-sz.net/api/client.php,裡面的代碼
用(2)在本地就可以是array,用(1)就不行了,就是原始的資訊。
訪問 http://www.cits-sz.net/api/index.php
得:
無許可權訪問
我不好說什麼了
api/index.php檔案的代碼如下:
1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--;}function JSON($array){arrayRecursive($array, 'urlencode', true);$json = json_encode($array);return urldecode($json);}$key=Reqs("key");if ($key<>'01f34958ba730edc2ca30d65245dd6a0'){echo '無許可權訪問';exit;}$sql='select l_id,l_title from '.TAB_TRAVEL_LINE.' order by l_id';$rsline=$mydb->query($sql,2);while ($fline=$rsline->movenext()){$data_line[]=$fline;}//上面那幾句是自己的讀取資料的echo $a=JSON($data_line);?>
$key='01f34958ba730edc2ca30d65245dd6a0';$curlPost='key='.urlencode($key);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');//(1)curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);curl_close($ch);print_r(json_decode(substr($data, 3), 1));//去掉 BOM 頭後再解碼
Array( [0] => Array ( [l_id] => 11 [l_title] => CITS-香港觀光一天遊【品質純玩】 ) [1] => Array ( [l_id] => 12 [l_title] => test ))
$key='01f34958ba730edc2ca30d65245dd6a0';$curlPost='key='.urlencode($key);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.cits-sz.net/api/index.php');//(1)curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);curl_close($ch);print_r(json_decode(substr($data, 3), 1));//去掉 BOM 頭後再解碼
Array( [0] => Array ( [l_id] => 11 [l_title] => CITS-香港觀光一天遊【品質純玩】 ) [1] => Array ( [l_id] => 12 [l_title] => test ))
非常感謝版主
xuzuning,問題完美解決,好人一生平安。
所以你一定不要有 BOM 頭
這樣事情就簡單了
所以你一定不要有 BOM 頭
這樣事情就簡單了
受教了,謝謝。