2013-04-16 54 views
1

我有一個JSON響應這樣的:用strip_tags截斷JSON

{ 
    "id":"2461", 
    "name":"GEORGIA INSTITUTE OF <leo_highlight style=border-bottom: 2px solid rgb(255, 255, 150); background-c", 
    "logo":"", 
    "address":null, 
    "city":null, 
    "state":null, 
    "campus_uri":"{{PATH}}2461\/" 
}, 
.... 
.... 

當我就這一個做strip_tgs,整個JSON字符串是越來越在name標籤截斷以上。 JSON字符串看起來像這樣。

{"id":"2461","name":"GEORGIA INSTITUTE OF 

所有在這條線下面都消失了。這是一個巨大的JSON。但它在這裏被截斷。 關於怎麼做的任何想法?我需要刪除所有的HTML標籤。

更新: 添加更多詳細信息...

這JSON字符串我是從編碼查詢結果陣列。所以我從MySQL查詢中獲取數組,並使用json_encode對它進行編碼,並試圖對其執行strip_tags

+2

問題是該名稱的'<'沒有匹配'>'。所以它看起來像標籤永遠不會結束。 – Barmar

+0

是的,我看到了這個問題。但是它不應該在該行之後剝離整個字符串? –

+0

好的,如果你控制JSON的創建,爲什麼不在你的序列化之前去掉標籤呢? –

回答

1
$array = json_decode($json, true); 
array_walk_recursive($array, function (&$val) { $val = strip_tags($val); }); 
$json = json_encode($json); 

As simple ... Decode it,walk through and encode it it。

+0

請檢查我的更新。 –

+0

@KevinRave然後在編碼之前執行我的array_walk_recursive調用,一切都很理智 - 編碼後使用strip_tags – bwoebi

+0

這是如何工作的?你是否分別編碼每個JSON對象的每個元素?抱歉,試圖瞭解它的功能。 –

0

解碼JSON對象後,去掉標籤。你可能會以懶惰的方式做到這一點(即在需要的時候),而不是通過所有項目上的條形標籤。

+0

請檢查我的更新。 –