2013-05-02 2 views
0

Это заставило меня застрять какое-то время, поэтому я подумал, что отправлю его. Мой вопрос, что мой find-> не работал правильно и $ product_name подходил нулевойPHP Simple DOM не работает

require 'mysql_con.php'; 
    require 'simple_html_dom.php'; 

    $html = file_get_html('http://www.xxxx.com/index.php?main_page=index&cPath=23'); 

    /* foreach($html->find('img') as $element) { 
      echo $element->src . '<br>'; 
     } */ 

    $find = $html->find('#specialsListing .specialsListBoxContents .indent a'); 

    $i=0; 

    foreach ($find as $test) { 

     $link = html_entity_decode($test->href); 

     $linkgrab = file_get_html($link); 

     $product_name = $linkgrab->find('#productName')->innertext; 

     echo $product_name; 

     break; 

    } 

ответ

1

Насколько я отправляю это для других, я все еще не уверен, почему ниже обстоит дело и хотел бы, если кто-то может указать мне на это.

Я разработал вопрос в том, что:

$product_name = $linkgrab->find('#productName')->innertext;

должен быть

$product_name = $linkgrab->find('#productName', 0)->innertext;

В основном название продукта должно быть пронумерованы. Однако я все еще сбита с толку, потому что здесь: $find = $html->find('#specialsListing .specialsListBoxContents .indent a'); команда find работала для меня, не нуждаясь в нумерации, также я думал, что этот селектор был идентификатором, и это сделало бы ненужным, если бы кто-нибудь мог указать, что я пропавших без вести, было бы здорово.

+2

Метод find возвращает массив объектов. если вы укажете второй параметр ('0' в вашем случае), то он возвращает объект из этого ключа из массива. Его в документации http://simplehtmldom.sourceforge.net/manual_api.htm внутренний текст не задан для массива, а для отдельных объектов. –

Смежные вопросы