虽然它可以在简单的情况下工作,但您应该在一般的not use regular expressions解析和修改HTML。而是使用可通过DOMDocument向PHP提供的DOM接口。
您可以使用此功能:
function addSalutation($html) {
$doc = new DOMDocument();
$doc->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($doc);
$tds = $xpath->query('//tbody/tr/td[contains(text(),"{{ username }}")]');
foreach(iterator_to_array($tds) as $td) {
$newTd = $doc->createElement('td', '{{ salutation }}');
$newTr = $doc->createElement('tr');
$newHd = $doc->createElement('thead');
$newTr->appendChild($newTd);
$newHd->appendChild($newTr);
$tbody = $td->parentNode->parentNode;
$tbody->parentNode->insertBefore($newHd, $tbody);
}
return $doc->saveHTML();
}
调用示例:
// Sample data
$html = '
{{ username }}
';// Add salutation
$html = addSalutation($html);
// Output result
echo htmlentities($html);