如何实现调用百度搜索结果,仅将标题显示在自己网站上?如这个网站:http://www.xxjszj.net/

解决方案 »

  1.   

    <?
    include ("ugs.php"); // 你可以下载本ugs.phps 然后重命名为ugs.php
    $ugs = new ugs();
    $url = "http://domainname.com/path_to_your_target?param";
    $ugs->seturl($url);
    $ugs->gather();
    //............这里可以调用本类里的其它方法,对$ugs->value_   做调整,
    以满足您的要求
    $content=$ugs->getcontent();
    print($content);
    ?>
    */
    class ugs
    {
    var $value_   ;   //'目标内容
    var $src_ ;   //'目标URL地址function seturl($url)
    {
           $this->src_=$url;
    }
    function getcontent()
    {
           return $this->value_;
    }
    function getfile($url)
    // 获取目标
    {
           $url_parsed = parse_url($url);
           $host = $url_parsed["host"];
           $port = $url_parsed["port"];
           if ($port==0)   $port = 80;
           $path = $url_parsed["path"];
           if (empty($path))
           $path="/";
           if ($url_parsed["query"] != "")
          $path .= "?".$url_parsed["query"
    ];
           $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n"[font=新宋体];
           $fp = fsockopen($host, $port, $errno, $errstr, 30);
           fwrite($fp, $out);
           $body = false;
           while (!feof($fp))
           {
          $s = fgets($fp, 1024);
          if ( $body )   $in .= $s;
          if ( $s == "\r\n" )
                 $body = true;
           }
           fclose($fp);
           return $in;
       }   function getfile_curl($url)
       {
    $curl="/usr/local/bin/curl " ; // path to your curl 
    $curl_options=" -s --connect-timeout 10   --max-time 10   "; 
    // curl 用法请参考 curl --help 或者 man curl 
    // curl 参数非常之丰富,可以模拟各种浏览器(agent) 可以设置referer
    $cmd="$curl $curl_options $url ";
    @exec($cmd,$o,$r);
    if($r!=0) 
    {
           return "超时";
    }
    else
    {
    [color=#000000] 
    $o=join("",$o);
           return $o;
    }
       }function gather_curl($curl)
    {
           $http=$this->getfile_curl($this->src_);
           return $this->value_=$http;
    }function gather_array($url)
    {
           return file($url);
    }function   gather()
    // 开始收集
    {
           $http=$this->getfile($this->src_);
           return $this->value_=$http;
    }function gather_local($toline=true)
    // 处理本地文件
    {       if($toline)
           {
             $http=file($this->src_);
             return $this->value_=$this->BytesToBstr($http);
           }
           else
           {
             $http=file($this->src_);
             return 
    $this->value_=$http[font=新宋体];
           }
                      
    }function noReturn()
    // 删除回车换行
    {
           $this->value_=str_replace("\n","",$this->value_);
           $this->value_=str_replace("\r","",$this->value_);
    }
    function change($oldStr,$str)
    //'对收集到的内容中的个别字符串用新值更换/方法
    //'参数分别是旧字符串,新字符串
    {
           $this->value_=str_replace($oldStr,$str,$this->value_ );
    }function cut($start,$end,$no='1',$comprise='')
    //'按指定首尾字符串对收集的内容进行裁减(不包括首尾字符串)方法
    // $no 必须是 1,2 3 ... 不允许是0
    //$comprise 可以选择 start 或者 end 或者 all 或者 什么都不填
    {
           $string=explode($start,$this->value_);
           //print_r($string);
           $string=explode($end,$string[$no]);
           //print_r($string);
           switch ($comprise
    ){
                case 'start':
                         $string=$start.$string[0];
                break;
                case 'end':
                         $string=$string[0].$end;
                break;
                case 'all':
                         $string=$start.$string[0].$end;
                break;
                default:
                         $string=$string[0];
           }
           return $this->value_=$string;
           }
    function   filt($head,$bot,$str,$no='1',$comprise='')
    //'按指定首尾字符串对收集的内容用新值进行替换(不包括首尾字符串)方法
    // '参数分别是首字符串,尾字符串,新值,新值位空则为过滤
    {
           $tmp_v=$this->value_;
           $tmp=$this->cut($head,$bot,$no,$comprise);
           return $this->value_=str_replace[/font][/color][/font]
    ($tmp,$str,$tmp_v);
    }function   local()
    {
           //'将收集的内容中的绝对URL地址改为本地相对地址
           // 还没实现
    }function   replaceByReg($patrn,$str)
    //'对收集的内容中的符合正则表达式的字符串用新值进行替换/方法
    //'参数是你自定义的正则表达式,新值
    {
           return $this->value_=join("",preg_replace($patrn,$str,$this->value_));
    }function debug()
    //调试显示
    {
           $tempstr="<SCRIPT>function runEx(){var winEx2 = window.open(\"\", \"winEx2\", \"width=500,height=300,status=yes,menubar=no,scrollbars=yes,resizable=yes\"); winEx2.document.open(\"text/html\", \"replace\"); winEx2.document.write(unescape(event.srcElement.parentElement.children[0].value)); winEx2.document.close(); }function saveFile(){var win=window.open('','','top=10000,left=10000');win.document.write(document.all.asdf.innerText);win.document.execCommand('SaveAs','','javascript.htm');win.close();}</SCRIPT><center><TEXTAREA id=asdf name=textfield rows=32   wrap=VIRTUAL cols=\"120\">".$this->value_."</TEXTAREA><BR><BR><INPUT name=Button onclick=runEx() type=button value=\"查看效果\">   <INPUT name=Button onclick=asdf.select() type=button value=\"全选\">   <INPUT name=Button onclick=\"asdf.value=''\" type=button value=\"清空\">   <INPUT onclick=saveFile(); type=button value=\"保存代码\"></center>";
           echo $tempstr;
    }
    }
    ?>
      

  2.   

    你可以下载本ugs.phps 然后重命名为ugs.php 请教ugs.phps文件在哪里?
    class ugs 

    var $value_  ;  //'目标内容 
    var $src_ ;  //'目标URL地址 

    是不是就是ugs.phps的代码,如果不是,能不能贴出代码?
      

  3.   

    我用以下代码取文章标题,为什么只能得到一个内容?<? 
    include ("ugs.php"); // 你可以下载本ugs.phps 然后重命名为ugs.php 
    $ugs = new ugs(); 
    $url = "http://www.baidu.com/baidu?q1=%D7%DC%BD%E1&ft=all"; 
    $ugs->seturl($url); 
    $ugs->gather(); 
    //............这里可以调用本类里的其它方法,对$ugs->value_  做调整, 以满足您的要求 
    $start='<font size="3">';
    $end='</font></font>';
    for ($i=1; $i<=10; $i++)

    $content=$ugs->cut($start,$end,$no=$i,$comprise='all');  
    print($content);
    }
    ?> 
      

  4.   

    curl需要linux支持吧?
    file_get_contents,然后正则匹配也比较方便。