用php中的字符串替换自定义标记的值

时间:2011-09-22 14:48:59

标签: php

我想阅读一个html文件并替换mytag中的内容。

所以在html文件中我们有这样的东西:

                    <div>
                        <h3><mytag>_THIS_DAY</mytag></h3>
                        <div>
                             [LOGIN]
                        </div>
                    </div>

然后在php文件中,我需要读取文件并替换标签内的值。

str_replace()?

如何在php中获取这些标签内的值,然后如何用类似字符串的东西替换它们?

3 个答案:

答案 0 :(得分:2)

str_replace()使用正则表达式(如本网站上所述elsewhere)通常不足以解析HTML。

您应该使用HTML parser来检索和/或替换所需的值。

答案 1 :(得分:2)

警告:You shouldn't parse XHTML with regexp

那就是说,你仍然可以这样做:

preg_replace("~(?<=<mytag>)[^>]+(?=</mytag>)~", "independance day", $yourHtml);

快速解释:

  • [^>]+我们会查找一串1 + char且没有>
  • 的字符串
  • (?<=<mytag>)此字符串必须在<mytag>positive lookahead
  • 之后
  • (?=</mytag>)此字符串必须包含</mytag>(正数 回顾后)

Live example

答案 2 :(得分:1)

  • 看看php-manual fpr preg_replace。使用正则表达式,您可以执行简单的替换
  • 如果你想要更复杂的东西,你可以解析你的HTML。你可以使用例如simple_html_dom-contribution:http://simplehtmldom.sourceforge.net/