<?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->getChildNodes() 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){
$before = mb_substr($node->textContent, 0, $o);
$wrap = mb_substr($node->textContent, $o, mb_strlen($searchString, "UTF-8"));
$after = mb_substr($node->textContent, $o);
print_r($before);
print_r($wrap);
print_r($after);
}
}
}
}
};
foreach($words as $name => $word)
$ps($D->documentNode, $word, $name);
}
$x = new DOMDocument();
$x->loadXML("<data>drugs cartel</data>");
applyHLToSiblings($x);
preferences:
48.41 ms | 402 KiB | 5 Q