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

+1

真剣に?すでに編集されている1つの見積もりを忘れた... –

+0

また、この場合、json_decode()はオブジェクトを返すので、 'echo $ values-> count;'にする必要があります。 – vascowhite

2

この正規表現を文字列:IN\.Tags\.Share\((.*)\に適用してJSONを取り出すことをお勧めします。最初のグループを取り出し、json_decodeを使用してください。http://php.net/manual/en/function.json-decode.php

こうして、データに直接アクセスすることができます。複雑なデータ構造もサポートします。