【发布时间】:2011-07-22 10:27:28
【问题描述】:
此代码查找<date_iso></date_iso> 中是否存在字符串 2004,如果存在,我会从找到搜索字符串的特定元素中回显一些数据。
我想知道这是否是最好/最快的方法,因为我主要关心的是速度并且 XML 文件很大。谢谢你的想法。
这是一个 XML 示例
<entry ID="4406">
<id>4406</id>
<title>Book Look Back at 2002</title>
<link>http://www.sebastian-bergmann.de/blog/archives/33_Book_Look_Back_at_2002.html</link>
<description></description>
<content_encoded></content_encoded>
<dc_date>20.1.2003, 07:11</dc_date>
<date_iso>2003-01-20T07:11</date_iso>
<blog_link/>
<blog_title/>
</entry>
这是代码
<?php
$books = simplexml_load_file('planet.xml');
$search = '2004';
foreach ($books->entry as $entry) {
if (preg_match('/' . preg_quote($search) . '/i', $entry->date_iso)) {
echo $entry->dc_date;
}
}
?>
这是另一种方法
<?php
$books = simplexml_load_file('planet.xml');
$search = '2004';
$regex = '/' . preg_quote($search) . '/i';
foreach ($books->entry as $entry) {
if (preg_match($regex, $entry->date_iso)) {
echo $entry->dc_date;
}
}
?>
【问题讨论】: