Вызов функции-члена find () для необъекта при вставке данных с использованием PHP mySQL simpleHTMLDOM

0

У меня есть script, который анализирует определенные элементы на веб-странице и сохраняет их в mysql db. Все работает нормально, пока я не попытаюсь разделить элемент и сохранить полученные данные в db. Какие-нибудь идеи, что может быть неправильным? Здесь страница, которую я обрабатываю: http://www.ratemyprofessors.com/SelectTeacher.jsp?sid=953

Здесь мой код:

<?php
include('simple_html_dom.php'); 

//connect to db (code emitted)

prof_List("http://www.ratemyprofessors.com/SelectTeacher.jsp?sid=953");

function prof_name($url)
{
    // collect data
    echo $url;
    $data = new simple_html_dom();  
    $data->load_file($url);
    $profName = $data->find("//*[@id=profName]", 0);
    $profName = strip_tags($profName);
    echo "Full Name: " . $profName = trim($profName);
    list($first, $last) = explode("&nbsp;", $profName);
    echo "fname: " .  $first;
    echo "lname: " . $last;

    //call mysql function
    insert_row($profName, $first, $last);

}


function insert_row($profName, $first, $last)
{
    $sql1="INSERT INTO PROFESSOR(name, firstname, lastname) VALUES('$profName','$first', '$last')";
    $sql1=strip_tags($sql1);
    echo $sql1;
    mysql_query($sql1) or die(mysql_error());  
    echo "Data Inserted!"; 
}


function prof_List($mainURL)
{

    $list = new simple_html_dom();  
    $list->load_file($mainURL);
    $profLinks = $list->find("//*[@class=profName]/a");
    foreach($profLinks as $profLink)
    {
        $profU=$profLink->href;
        echo $profURL = "http://www.ratemyprofessors.com/" . $profU;
        prof_name($profURL);
    }

}

?>

Здесь мой вывод:

Connected to MySQL
Connected to Databasehttp://www.ratemyprofessors.com/SelectTeacher.jsp?the_dept=All&sid=953&orderby=TLName&toggel=truehttp://www.ratemyprofessors.com/SelectTeacher.jsp?the_dept=All&sid=953&orderby=TLName&toggel=trueFull Name: fname: lname: INSERT INTO PROFESSOR1(name, firstname, lastname) VALUES('','', '')Data Inserted!http://www.ratemyprofessors.com/ShowRatings.jsp?tid=861228http://www.ratemyprofessors.com/ShowRatings.jsp?tid=861228
Fatal error: Call to a member function find() on a non-object in /Users/user1/Sites/simple_html_dom.php on line 879
  • 1
    Попробуйте это: $ data-> file_get_html ($ url); вместо $ data-> load_file ($ url);
  • 0
    Я получаю фатальную ошибку: вызов неопределенного метода simple_html_dom :: file_get_html ()
Показать ещё 1 комментарий
Теги:
simple-html-dom

1 ответ

1
Лучший ответ

Я не думаю, что вы можете использовать find() на simple_html_dom().

Попробуйте следующее:

$data = new simple_html_dom();  
$data->file_get_html($url);
$profName = $data->find("//*[@id=profName]", 0);

Эта ссылка дает отличный базовый пример.

  • 0
    Я получаю фатальную ошибку: вызов неопределенного метода simple_html_dom :: file_get_html ()
  • 0
    Также я использовал $ data-> find просто отлично на другом скрипте, именно он вызывает у меня проблемы.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню