0

Collada (.dae) ファイルがあります。ファイル内には、この形式のタグがたくさんあります。

<float_array id="adsfsafdas" count="72">12 4 2 1 92 1</float_array>

これらすべてのタグの間から文字列を抽出して配列に入力したいので、この例では文字列「12 4 2 1 92 1」を配列に保存します。

指定された 2 つの文字列の間の文字列を検索する機能がありますが、開始タグの「id」と「count」はそれぞれに変更されます。少し調べてみると、正規表現がパターンに一致する方法であり、「preg_match」が役立つ可能性があるようです。

それをどうやって進めるかについてのヒントはありますか?ありがとう

編集:アドバイスをありがとう-次のコードで動作するようになりました!

<?PHP

//open collada file
$file = file_get_contents('samplecollada.dae');

//find all matches and populate array
preg_match_all("/\<float_array id\=\".+\" count\=\".+\"\>(.+)\<\/float_array\>/",$file, $results);

//output array to preview result
print_r($results[1]);

?>
4

2 に答える 2

0

SimpleXml を使用してみてsimplexml_load_fileから、そのオブジェクトとexplodeそれを配列に反復処理します

于 2012-07-20T17:31:45.847 に答える
0

これは、正規表現の特殊文字の基本的なリファレンスですここに PHP のドキュメントがありますpreg_match()。あなたがしたいのは、リテラル<float_array、次に属性の可変セット(.*?orのようなものを使用して[^>]*?、次にリテラル>、次に数字(それらを後方参照できるようにグループ化</float_array>する必要があります)、次にリテラルと一致することです。 PHP では、$matches後方参照をキャプチャするために変数を渡すことができます (再度、上記のドキュメントを参照してください)。/区切り文字として使用する場合は、正規表現内のスラッシュを でエスケープする必要があります\。残りをつなぎ合わせることができると確信しています。

于 2012-07-20T17:31:57.973 に答える