Данный фрагмент кода рабочий , если его не описывать как функцию . Но , реализованный в виде функции , работает не так как надо - возвращает данные из <td class="detail"> только из одного блока , а их в странице "page.html " целых 16.
Код: Выделить всё
<?php//Подкл. библиотеку//Подробнее о библиотеке здесь : http://simplehtmldom.sourceforge.net/manual.htminclude('simple_html_dom.php');function ExtractContent(){/*Данные берутся из сохр. html-страницы , находящейся втом же каталоге что и скрипт*/$html = file_get_html('page.html');//Если находим необходимый блок кода <td class="detail"> - продолжаем работу if($tag = count($html ->find('td.detail')) != 0){ $i = 0; $item = array(); foreach($html ->find('td.detail') as $element){/*$element->outertext Читает или записывает весь HTML элемента, включая его самого.$element->innertext Читает или записывает внутренний HTML элемента$element->plaintext Читает или записывает простой текст элемента*/ // Найти все <div> с классом title $item[$i]['title'] = $element->find('div.title',0)->plaintext;// Найти все ссылки в <div> с классом title и извлечь из ссылки атрибут href $item[$i]['link'] = $element->find('div.title a',0)->href;//Найти все параграфы $item[$i]['description'] = $element->find('p',0)->plaintext;// Найти <div class="uah"> $item[$i]['cost-uah'] = $element->find('div.uah',0)->plaintext;// Найти <div class="usd"> $item[$i]['cost-usd'] = $element->find('div.usd',0)->plaintext; $i++; return $item; }//Очистка памяти(рекомендуется делать) $html->clear();//Удаление переменной unset($html); }//Сюда попадаем ,если <td class="detail"> не был найден else{ $html->clear(); unset($html); return false; } } $content = ExtractContent();print_r($content);?>