<?php
function applyHLToSiblings(DOMDocument $D){
$words[0] = "cart";
/*
$words[1] = "car";
$words[2] = "cartel";
$words[3] = "art";
$words[4] = "drug";
$words[5] = "drugs";
$words[6] = "rug";
$words[7] = "rugs";
*/
$ps = function($siblingsContainer, $searchString, $name) use($D){
foreach($siblingsContainer->childNodes as $node){
if($node instanceof DOMText){
if(mb_strlen($node->textContent, "UTF-8") >= mb_strlen($searchString)){
$o = mb_strpos($node->textContent, $searchString);
if($o !== false){
$l = mb_strlen($searchString, "UTF-8");
$before = mb_substr($node->textContent, 0, $o);
$wrap = mb_substr($node->textContent, $o, $l);
$after = mb_substr($node->textContent, $o + $l);
var_dump($before);
var_dump($wrap);
var_dump($after);
}
}
}
}
};
foreach($words as $name => $word)
$ps($D->documentElement, $word, $name);
}
$x = new DOMDocument();
$x->loadXML("<data>drugs cartel</data>");
applyHLToSiblings($x);
var_dump($x);
preferences:
55.24 ms | 402 KiB | 5 Q