簡體   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