2012-03-11 72 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

这样,就可以直接访问数据。它也将支持复杂的数据结构。