我该如何更好地定义这个函数(PHP)?

时间:2014-07-09 13:04:02

标签: php regex preg-replace

我是php的noob,但我需要稍微修改一下脚本。

它通过HTML模板查找并查找<head>,然后在它之后 - 它为HTML中的<head>区域添加预定义的内容(css和javascript路径等)输出。

现在该功能如下:

$template = preg_replace('/<head(.*?)\>(.*?)/is', "<head\\1>".'[|EXTRAHEADER|]'

我看到这会使所有以此为开头的区域都在我正在使用的新主题中。

如何更改上述标识符/查找内容 - 因此不会选择

<header...

但仅

<head...

我认为该脚本的原始所有者已完成上述操作以接受人们同时使用<head><head >,但我确实不确定。

对我来说,重要的是这个脚本不会尝试将所有css等“头部内容”添加到HTML文档中的其他位置而不是HTML头中。

3 个答案:

答案 0 :(得分:0)

尝试并改变:

$template = preg_replace('/<head(.*?)\>(.*?)/is', "<head\\1>".'[|EXTRAHEADER|]'

到此:

$template = preg_replace('/<head\b(.*?)\>(.*?)/is', "<head\\1>".'[|EXTRAHEADER|]'

答案 1 :(得分:0)

请试试这个

$template = preg_replace('/<head\b(.*?)\>(.*?)/is', "<head\\1>".'[|EXTRAHEADER|]'

答案 2 :(得分:0)

请尝试

$template = preg_replace('/<head\>(.*?)/is', '<head>[|EXTRAHEADER|]'.$1);

在不知道你的确切目的的情况下,我只是在这里猜测。

之后是否会通过模板引擎解析该额外标题?