得到Php卷曲错误

时间:2016-01-07 14:26:13

标签: php curl

我想获取前10个结果,我传递给任何网址作为参数..我想为某些网站制作数据抓取器

在屏幕上打印结果时出现语法错误 这行语法错误我不知道为什么它给我语法错误,请帮助我......

print_r($ dse-> crawl() - > parse());

<?php               
      class CURL_CRAWLER{
      public $url;
      public $request_type;
      public $data;
      public $post_params;

  function __construct($url = '' , $request_type = 'GET')
  {
     $this->url = $url;
     $this->request_type = $request_type;
     $this->data = '';
     $this->post_params = array();
   }
/**crawl a document **/
 function crawl()
   {
    $curl = curl_init( $this->url );
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 60);
    curl_setopt($curl, CURLOPT_USERAGENT, 'cURL PHP');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $this->data = curl_exec($curl);
    curl_close($curl);
    return $this; //make it a chainable method
   }
/** Parse result data **/
   function parse(){
   $result = array();
   $count = 0;
   $dom = new DOMDocument;
   $dom->preserveWhiteSpace = false;
   $dom->loadHTML($this->data);
   $xpath = new DOMXPath($dom);
   $news = $xpath->query('//td[@bgcolor="#DDDDDD"]/table/tr[position()=2]/td[position()=2]');
   foreach( $news as $n){
       $result[] =   $n->nodeValue;
       $count++;
       if ($count >9)
           break; //we just need  10 results. Index starts from 0
   }
   return $result;
      }
    }
 error_reporting(0);
        $dse = new CURL_CRAWLER('http://www.dsebd.org/display_news.php');
    echo "<pre>";
    print_r( $dse-&gt;crawl()-&gt;parse() );
    echo "<pre>";

   ?>

1 个答案:

答案 0 :(得分:2)

您的语法错误是您应该使用显式的“大于”符号而不是HTML实体&gt; - 服务器不需要那些,它不是可以正确呈现它的浏览器。只需改变:

print_r( $dse-&gt;crawl()-&gt;parse() );
              ^^^^        ^^^^

为:

print_r( $dse->crawl()->parse() );