@ 2017-07-13T08:06:11Z <?php
class MyParser {
priuvate $domdoc;
public function __construct(DOMDocument $domdoc){
$this->domdoc = $domdoc;
}
public function __toString()
{
protected function replaceVariableInside($varName, $text, $idType, $idValue)
{
$nodes = $this->getNodes($idType, $idValue);
$newTextNode = $this->getNodeFromText($text);
array_map(function($node) use ($varName, $newTextNode){
/* @var $node DOMNode */
$textNodes = array_filter($node->childNodes, function($node){
return $node->nodeType === XML_TEXT_NODE;
});
foreach ($textNodes as $textNode)
{ /* @var $textNode \DOMText */
$pos = strpos($textNode->nodeValue, $varName);
if($pos !== false)
{
$newNode = $textNode->splitText($pos);
$newNode->nodeValue = substr($newNode->nodeValue, strlen($varName));
$newNode->insertBefore($newTextNode);
}
}
}, $nodes);
}
protected function getNodes($idType, $idValue)
{
switch ($idType){
case 'id':
return [
$this->domdoc->getElementById($idValue)
];
break;
case 'class':
return (new DOMXPath($this->domdoc))
->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $idValue ')]");
break;
default:
break;
}
}
protected function insertInto($idType, $id, $text)
{
$newnode = $this->getNodeFromText($text);
array_map(function($elementOfDom) use ($newnode){
/* @var $elementOfDom DOMNode */
@$elementOfDom->appendChild($newnode);
}, $this->getNodes($idType, $id));
}
protected function getNodeFromText($text)
{
$text = html_entity_decode($text);
try
{
$tmp = new DOMDocument;
$textDocumentRes = @$tmp->loadHTML('<?xml encoding="utf-8" ?><span>'.$text.'</span>');
}
catch(Exception $e)
{
$textDocumentRes = false;
}
if($textDocumentRes)
{
$newnode = $this->domdoc->importNode($tmp->documentElement->firstChild->firstChild, true);
}
else
{
$newnode = $this->domdoc->createTextNode($text);
$newnode->nodeValue = $text;
}
return $newnode;
}
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.1.0 - 7.1.21 , 7.2.0 - 7.2.9 Parse error: syntax error, unexpected 'priuvate' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in /in/7RHhu on line 4
Process exited with code 255 . Output for 7.0.0 - 7.0.31 Parse error: syntax error, unexpected 'priuvate' (T_STRING), expecting function (T_FUNCTION) in /in/7RHhu on line 4
Process exited with code 255 . preferences:dark mode live preview
209.99 ms | 1399 KiB | 71 Q