【发布时间】:2013-08-30 15:37:17
【问题描述】:
有人可以帮我实现这个功能吗?该函数应该接受$HTMLstr——一整页的 HTML 填充到一个字符串中,该字符串已经包含以下形式的元描述:
<meta name="description" content="This will be replaced"/>
连同$content,这是应该替换“这将被替换”的字符串。我以为我很接近这个功能,但它并不完全有效。
function HTML_set_meta_description ($HTMLstr, $content) {
$newHTML = preg_replace('/<meta name="description"(.*)"\/>/is', "<meta name=\"description\" content=\"$content\"/>", $HTMLstr);
return ($newHTML);
}
感谢您的帮助!
编辑:这是工作函数。
function HTML_set_meta_description ($HTMLstr, $content) {
// assumes meta format is exactly <meta name="description" content="This will be replaced"/>
$newHTML = preg_replace('/<meta name="description" content="(.*)"\/>/i','<meta name="description" content="' . $content . '" />', $HTMLstr);
return ($newHTML);
}
【问题讨论】:
-
改用 DOM 解析器。 Why
-
另外,看起来你的函数在被替换之前会
exit? -
糟糕!删除了调试代码。我保证那不是问题。 :)
标签: php html regex preg-replace