У меня есть некоторые HTML с пользовательскими атрибутами и пытаюсь проанализировать его с помощью компонента PHPHtmlParser. Весь проект создан с помощью этого компонента. Вот пример проблемы.
use PHPHtmlParser\Dom;
class Parsemydiv {
function parseAttr()
{
$str='<div otop="20" oleft="20" name="info">
<img src="example.jpg">
</div>';
$dom = new Dom();
$dom->loadStr($str);
$otop = $dom->getAttribute("otop");
$name = $dom->getAttribute("name");
echo "Name: " . $name . PHP_EOL;
echo "Top: " . $otop . PHP_EOL;
echo "Left: " . $oleft . PHP_EOL;
}
}
Выход:
Имя: информация
Верхний:
Оставил:
getAttribute не может получить пользовательские атрибуты.
Зачем использовать стороннюю библиотеку для анализа DOM, если в PHP есть встроенная поддержка для этого? Я предлагаю изучить нативные функции вместо:
$str='<div otop="20" oleft="15" name="info">
<img src="example.jpg">
</div>';
$doc = new DOMDocument();
$doc->loadHTML($str);
$div = $doc->getElementsByTagName('div')[0];
$otop = $div->getAttribute('otop');
$oleft = $div->getAttribute('oleft');
echo "otop=$otop, oleft=$oleft"; //otop=20, oleft=15
Других решений пока нет …