BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
www
/
app.imagivibe.com
/
vendor
/
paquettg
/
php-html-parser
/
src
/
PHPHtmlParser
📤 Upload
📝 New File
📁 New Folder
Close
Editing: Finder.php
<?php declare(strict_types=1); namespace PHPHtmlParser; use PHPHtmlParser\Dom\AbstractNode; use PHPHtmlParser\Dom\InnerNode; use PHPHtmlParser\Exceptions\ChildNotFoundException; use PHPHtmlParser\Exceptions\ParentNotFoundException; class Finder { /** * @var int */ private $id; /** * Finder constructor. * @param $id */ public function __construct($id) { $this->id = $id; } /** * Find node in tree by id * @param AbstractNode $node * @return bool|AbstractNode * @throws ChildNotFoundException * @throws ParentNotFoundException */ public function find(AbstractNode $node) { if (!$node->id() && $node instanceof InnerNode) { return $this->find($node->firstChild()); } if ($node->id() == $this->id) { return $node; } if ($node->hasNextSibling()) { $nextSibling = $node->nextSibling(); if ($nextSibling->id() == $this->id) { return $nextSibling; } if ($nextSibling->id() > $this->id && $node instanceof InnerNode) { return $this->find($node->firstChild()); } if ($nextSibling->id() < $this->id) { return $this->find($nextSibling); } } else if (!$node->isTextNode() && $node instanceof InnerNode) { return $this->find($node->firstChild()); } return false; } }
Save
Cancel