PHP Простой HTML DOM Parser: доступ к настраиваемым атрибутам

Я хочу получить доступ к настраиваемому атрибуту, который я добавил к некоторым элементам в HTML-файле, вот пример littleBox="somevalue"

 <div id="someId" littleBox="someValue">inner text</div> 

Следующий не работает:

 foreach($html->find('div') as $element){ echo $element; if(isset($element->type)){ echo $element->littleBox; } } 

Я видел статью с аналогичной проблемой, но по какой-то причине я не мог ее воспроизвести. Вот что я пробовал:

 function retrieveValue($str){ if (stripos($str, 'littleBox')){//check if element has it $var=preg_split("/littleBox=\"/",$str); //echo $var[1]; $var1=preg_split("/\"/",$var[1]); echo $var1[0]; } else return false; } 

Когда я вызываю функцию retrieveValue() , ничего не происходит. Является ли $element (в первом примере PHP выше) не строкой? Я не знаю, пропустил ли я что-то, но ничего не возвращал.

Вот сценарий в полном объеме:

 <?php require("../../simplehtmldom/simple_html_dom.php"); if (isset($_POST['submit'])){ $html = file_get_html($_POST['webURL']); // Find all images foreach($html->find('div') as $element){ echo $element; if(isset($element->type)!= false){ echo retrieveValue($element); } } } function retrieveValue($str){ if (stripos($str, 'littleBox')){//check if element has it $var=preg_split("/littleBox=\"/",$str); //echo $var[1]; $var1=preg_split("/\"/",$var[1]); return $var1[0]; } else return false; } ?> <form method="post"> Website URL<input type="text" name="webURL"> <br /> <input type="submit" name="submit"> </form> 

Ты пробовал:

 $html->getElementById("someId")->getAttribute('littleBox'); 

Вы также можете использовать SimpleXML:

 $html = '<div id="someId" littleBox="someValue">inner text</div>'; $dom = new DOMDocument; $dom->loadXML($html); $div = simplexml_import_dom($dom); echo $div->attributes()->littleBox; 

Я бы советовал использовать regex для анализа html, но не должен быть такой частью:

 $str = $html->getElementById("someId")->outertext; $var = preg_split('/littleBox=\"/', $str); $var1 = preg_split('/\"/',$var[1]); echo $var1[0]; 

Также см. Этот ответ https://stackoverflow.com/a/8851091/1059001

Посмотрите, что http://code.google.com/p/phpquery/ это похоже на jQuery, но на php. Очень сильная библиотека.