我正在尝试解析以下字符串......
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];
或者有没有更好的方法来处理这种类型的字符串?我认为也可以使用正则表达式来完成。
感谢。
答案 0 :(得分:2)
我建议通过将此正则表达式应用于字符串IN\.Tags\.Share\((.*)\
来取出JSON。拉出第一组,然后使用json_decode
:http://php.net/manual/en/function.json-decode.php
这样,您就可以直接访问数据了。它也将支持复杂的数据结构。
答案 1 :(得分:2)
如果当然我不确定你的格式是否会保持不变,但是你的字符串部分看起来像JSON。如果总是这样,你可以这样做:
$str = str_replace('IN.Tags.Share(', '', $str);
$values = json_decode($str);
echo $values->count;