<?php
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 }}")]');
$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 = '
<tbody>
<tr>
<td>
{{ username }}
</td>
</tr>
</tbody>';
// Add salutation
$html = addSalutation($html);
// Output result
echo $html;
?>
PD9waHAKZnVuY3Rpb24gYWRkU2FsdXRhdGlvbigkaHRtbCkgewoJJGRvYyA9IG5ldyBET01Eb2N1bWVudCgpOwoJJGRvYy0+bG9hZEhUTUwoJGh0bWwsIExJQlhNTF9IVE1MX05PSU1QTElFRCB8IExJQlhNTF9IVE1MX05PREVGRFREKTsKCSR4cGF0aCA9IG5ldyBET01YUGF0aCgkZG9jKTsKCSR0ZHMgPSAkeHBhdGgtPnF1ZXJ5KCcvL3Rib2R5L3RyL3RkW2NvbnRhaW5zKHRleHQoKSwie3sgdXNlcm5hbWUgfX0iKV0nKTsKCWZvcmVhY2goaXRlcmF0b3JfdG9fYXJyYXkoJHRkcykgYXMgJHRkKSB7CgkJJG5ld1RkID0gJGRvYy0+Y3JlYXRlRWxlbWVudCgndGQnLCAne3sgc2FsdXRhdGlvbiB9fScpOwoJCSRuZXdUciA9ICRkb2MtPmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJJG5ld0hkID0gJGRvYy0+Y3JlYXRlRWxlbWVudCgndGhlYWQnKTsKCQoJCSRuZXdUci0+YXBwZW5kQ2hpbGQoJG5ld1RkKTsKCQkkbmV3SGQtPmFwcGVuZENoaWxkKCRuZXdUcik7CgkJJHRib2R5ID0gJHRkLT5wYXJlbnROb2RlLT5wYXJlbnROb2RlOwoJCSR0Ym9keS0+cGFyZW50Tm9kZS0+aW5zZXJ0QmVmb3JlKCRuZXdIZCwgJHRib2R5KTsKCX0KCXJldHVybiAkZG9jLT5zYXZlSFRNTCgpOwp9CgovLyBTYW1wbGUgZGF0YQokaHRtbCA9ICcKPHRib2R5PgogICAgPHRyPgogICAgICAgIDx0ZD4KICAgICAgICAgICAge3sgdXNlcm5hbWUgfX0KICAgICAgICA8L3RkPgogICAgPC90cj4KPC90Ym9keT4nOwkKCi8vIEFkZCBzYWx1dGF0aW9uCiRodG1sID0gYWRkU2FsdXRhdGlvbigkaHRtbCk7CgovLyBPdXRwdXQgcmVzdWx0CmVjaG8gJGh0bWw7Cj8+Cg==