Этот вопрос может быть немного специфичным для stackoverflow, но вот он. У меня есть php-файл, который берет html, записывая его в новый файл, вставляя имя файла в базу данных … все это прекрасно работает.
Теперь я хочу извлечь ссылки в html, используя DOM. Я получил код отсюда и получил следующую ошибку:
Ошибка анализа: синтаксическая ошибка, неожиданный конец $ … в строке 72
Казалось бы, я забыл что-то закрыть или закрыл что-то ничего не подозревающее. Однако только новый код из вышеупомянутой ссылки и, похоже, в порядке. Однако я новичок в DOM и PHP, поэтому, возможно, вы можете помочь. Любые указатели оцениваются. Вот что я добавил:
$dom = new DOMDocument(); @$dom->loadHTML($curl_scraped_page); $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate("/html/body//a"); //the above works fine, but when I add the loop bellow it fails for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); storeLink($url,$target_url); function storeLink($url) { $query = "INSERT INTO happyturtle (ad2, ad3) VALUES ('$url', '$gathered_from')"; mysql_query($query) or die('Error, insert query failed'); if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo "1 record added"; }
Для полноты, вот весь код с новыми включенными битами:
<html> <body> <? $urls=explode("\n", $_POST['url']); $proxies=explode("\n", $_POST['proxy']); for ( $counter = 0; $counter <= 6; $counter++) { for ( $count = 0; $count <= 6; $count++) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$urls[$counter]); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0); curl_setopt($ch, CURLOPT_PROXY,$proxies[$count]); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET'); curl_setopt ($ch, CURLOPT_HEADER, 1); curl_exec ($ch); $curl_scraped_page = curl_exec($ch); $FileName = rand(0,100000000000); $FileHandle = fopen($FileName, 'w') or die("can't open file"); fwrite($FileHandle, $curl_scraped_page); $dom = new DOMDocument(); @$dom->loadHTML($curl_scraped_page); $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate("/html/body//a"); $hostname="****"; $username="****"; $password="****"; $dbname="****"; $usertable="****"; $con=mysql_connect($hostname,$username, $password) or die ("<html><script language='JavaScript'>alert('Unable to connect to database! Please try again later.'),history.go(-1)</script></html>"); mysql_select_db($dbname ,$con); for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); storeLink($url,$target_url); function storeLink($url) { $query = "INSERT INTO happyturtle (ad2, ad3) VALUES ('$url', '$gathered_from')"; mysql_query($query) or die('Error, insert query failed'); $sql="INSERT INTO happyturtle (time, ad1) VALUES ('$FileName','$domains')"; } mysql_close($con); fclose($FileHandle); curl_close($ch); echo $FileName; echo "<br/>"; } } ?> </body> </html>