0

curlを使用してダウンロードして文字列に挿入したHTMLファイルがあります。HTMLファイルには多くのコンテンツが含まれていますが、ドキュメントの特定のセクションを解析して、このセクションを配列に挿入しようとしています。これのトリッキーな部分は、私が解析しようとしているセクションがHTMLではなく、JavaScriptブロックのコードであるということです。

 <!-- script block -->
 <script type="text/javascript" src="//external.site.com/76b07.js"></script>
 <script>....code.....
 "235533":{"itemId":"235533","type":"0","image":{"url":"thispic.jpg"}:"summary":"This Item"},
 "235534":{"itemId":"235534","type":"1","image":{"url":"thisotherpic.jpg"}:"summary":"This Other Item"},
 </script>

アイテム情報を配列としてインポートするにはどうすればよいですか?:

$array = array( "itemId" => "235533", "type" => "0", "image" => "thispic.jpg", "summary" =>"This Item" );
4

5 に答える 5

6

"....":{....}タグ間の位置を一致させるために RegExp を使用でき<script>ます。関心のある文字列はJSON変数です。
各json変数を文字列に入れたら、試してみることができますjson_decode()

$json_string = '"235533":{"itemId":"235533","type":"0","image":{"url":"thispic.jpg"}:"summary":"This Item"}';
$json = json_decode($json_string);
$myArray = (array)$json;
于 2012-09-14T20:08:28.897 に答える
2

PHPでjson_decode関数を試す

于 2012-09-14T20:09:14.243 に答える
1

最初に、データが変更された場合でも繰り返し使用できる文字列検索方法を使用して、データ構造を分離する方法を理解する必要があります。データ構造に関する内容、つまり、すべての場合で何が同じで、何が異なるかについて、あなたからのさらなる文脈なしに、これが何であるかを言うのは困難です。

json_decodeその後、他の人が提案したように、最終的にデータ文字列とそれらを取得します。

于 2012-09-14T20:12:23.733 に答える
0

それらを一致させるために正規表現を使用する

preg_match_all('/[0-9]+":{"itemId":"(?P<itemId>[0-9]*)","type":"(?P<type>[0-9]{1})","image":{"url":"(?P<image>.*)"}:"summary":"(?P<summary>.*)}/',$mystring,$elements,PREG_SET_ORDER);

次に、$elementsをループして値を取得します

于 2012-09-14T20:27:49.447 に答える
0

爆発を使用します。たとえば、次のようなもの

$array = explode('","', $string);

それはあなたが望むものに近づくでしょう。

編集: これはあなたにより適しているようです。

于 2012-09-14T20:11:16.527 に答える