繁体   English   中英

带有PHP逻辑的标记之间的PHP preg_match

[英]PHP preg_match between tags with PHP logic inside

我有一个动态站点地图创建脚本,该脚本递归地浏览文件系统,并在需要时打开文件的开头,然后在标记之间查找文本。 它在安装时就像...

<title>Page Title | Company, Inc.</title>

但是,现在我增加了一些麻烦,并设置了一种通过管理工具管理标题和元信息的方法。 以防万一没有输入内容,我想回到原来的默认标题信息,但是我的preg_match无法正常工作...

<title><?=@$page_meta_array['page_title']!=''?$page_meta_array['page_title']:"Default Title Here";?> | Company, Inc.</title>

我将页面传递给的php函数如下所示...

function get_title($filename) {
    $retval = "";
    $handle = fopen($filename, "r");
    $head = fread($handle, 4096);
    preg_match(";<title>(.+)</title>;", $head, $matches);
    if(sizeof($matches) == 2) {
        $retval = trim($matches[1]);
    }
    fclose($handle);

    return $retval;
}

有人可以指出我正确的preg_match吗? 我想从上面的第二个示例中返回“ Default Title Here”。

谢谢

这可能会做到:

preg_match(';<title><\?[^>]*"([^"]*)"[^>]*></title>;', $head, $matches);

请注意,不赞成使用短标记,并且在PHP6中可能无法使用。

您首先需要解析PHP代码,然后检查匹配项。 您为什么不只使用$ page_meta_array ['page_title']的内容?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM