0

我有一个 Collada (.dae) 文件。在文件中有很多这种格式的标签;

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

我想从所有这些标签之间提取字符串并填充一个数组,所以在这个例子中,它将字符串“12 4 2 1 92 1”保存到数组中。

我有一个函数可以在两个给定的字符串之间查找字符串,但是开始标签中的“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 回答