2012-03-11 63 views
2

我試圖解析以下字符串...獲得價值爆炸

IN.Tags.Share({"count":180,"url":"http://domain.org"} 

是我下面的方法正確獲取計數的值?

$str = 'IN.Tags.Share({"count":180,"url":"http://domain.org"}'; 
$data = explode(':', $str); 
$val = explode(',', $data[1]); 
return $val[0]; 

或者有沒有更好的方法來處理這種類型的字符串?我認爲這也可以使用正則表達式來完成。

謝謝。

回答

2

如果當然我不確定你的格式是否是常量,但是你的字符串的一部分看起來像JSON。如果總是這樣,你可以這樣做:

$str = str_replace('IN.Tags.Share(', '', $str); 
$values = json_decode($str); 
echo $values->count; 
+0

-1對於所有這些語法錯誤 – vascowhite 2012-03-11 22:38:17

+1

認真嗎?錯過了已經編輯過的一個報價...... – 2012-03-11 22:39:03

+0

也應該是'echo $ values-> count;'因爲在這種情況下json_decode()返回一個對象。 – vascowhite 2012-03-11 22:42:12

2

我會建議通過將這個正則表達式應用於字符串來拉出JSON:IN\.Tags\.Share\((.*)\。拔出第一組,然後使用json_decodehttp://php.net/manual/en/function.json-decode.php

這樣,就可以直接訪問數據。它也將支持複雜的數據結構。