preg_match和preg_replace问题

时间:2011-09-16 21:31:57

标签: php regex

我正在创建动态XML,需要更新服务器上文件中的lastBuildDate。我知道如何做一切,但改变了。

我想我可以使用preg_match来查找表达式,使用preg_replace来替换它。我的字符串将如下所示:

$build_date = '<lastBuildDate>Fri 16 Sep 2011 2:30:15 -6:00 GMT<lastBuildDate>';

如何使用preg_match查找标签内的日期,然后如何更换?对于正则表达式,我是一个菜鸟,这是我认为我必须使用的。我只是不确定如何在该字符串中找到通配符。

感谢。

2 个答案:

答案 0 :(得分:1)

我建议您阅读preg_matchPCRE syntax文档,然后使用RegExr之类的工具来解释您用英语单词编写的正则表达式。这是一个很好的工具。

答案 1 :(得分:0)

乍一看,我觉得你的贴身标签上缺少'/'。我假设应该有一个。

与其他人已经评论过的一样,您应该使用XML解析器。

但是,要回答如何使用preg_replace执行此操作,可以执行此操作:

$build_date = "<lastBuildDate>Fri 16 Sep 2011 2:30:15 -6:00 GMT</lastBuildDate>";

function replacer($matched) {
    return "<lastBuildDate>" . strrev($matched) . "</lastBuildDate>";
}

echo preg_replace("/<lastBuildDate>(.*?)<\/lastBuildDate>/me", "replacer('$1')", $build_date);

这将回显xml标记,其中(为了示例)日期字符串被简单地反转。同样,我建议不要使用表达式来执行此操作。