1
我想爲我的頁面解析HTML標題並添加一個ID以匹配內容。我已經成功與find做到這一點和替換,但是當任何附加的HTML屬性都存在失敗...PHP爲標題添加標識屬性
下面有什麼頭陣列中的改變
[
'find' => sprintf('<h%u>%s</h%u>', $level, $title, $level),
'replace' => sprintf('<h%u id="%s">%s</h%u>', $level, slugify($title), $title, $level),
'slug' => slugify($title)
]
的更換是後來做...
foreach ($parsed_content as $fix) {
$content = str_replace($fix['find'], $fix['replace'], $content);
}
這是不這樣做,我知道最好的方式,但它只是一個測試,現在,使其正常工作,我想我只需要使用正則表達式,而不是一個標準的str_replace呼叫。
我正在使用DOMDocument,會有一種替代方法可能嗎?
編輯:我試圖用xpath來mainipulate html。我有一個簡單的循環來獲取數據,但我不知道如何將代碼應用於實際文檔。有任何想法嗎?下面有什麼,我有個大氣壓
$dom = new DOMDocument;
$dom->loadHTML($the_dom);
$xpath = new DOMXPath($dom);
$elements = $xpath->query('(//h1|//h2|//h3|//h4|//h5)');
foreach ($elements as $index => $element) {
$element->setAttribute('id', sanitize_title($element->textContent));
pr($element);
}
這個傳奇職位將再次生活! http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –