dedecms如何做音乐网站,温州做网站哪家比较好,开发助手,如何提高网站速度在i94web博客中#xff0c;我试过了畅言和多说两种社会化评论框#xff0c;后来还是抛弃了畅言#xff0c;不安全。 无论是畅言还是多说#xff0c;我都需要从远程抓取文章的评论数#xff0c;然后存入本地数据库。对于多说#xff0c;请求的格式如下#xff1a; // 获取… 在i94web博客中我试过了畅言和多说两种社会化评论框后来还是抛弃了畅言不安全。 无论是畅言还是多说我都需要从远程抓取文章的评论数然后存入本地数据库。对于多说请求的格式如下 // 获取评论次数,参数是文章ID function getCommCount($postid) { $jsondata file_get_contents(http://api.duoshuo.com/threads/counts.json?short_namei94webthreads$postid); // 设置true返回数组,不设置或者是false则返回对象 $resjson json_decode($jsondata,true); return $resjson[response][$postid][comments]; } 对于远程请求有很多种方法。今天LZ就搜罗了六种供大家参考。 1、用file_get_contents 以get方式获取内容 ?php $urlhttp://www.ido321.com/; $html file_get_contents($url); echo $html; ? 2、用fopen打开url用get方式获取 $fp fopen($url, r); stream_get_meta_data($fp); while(!feof($fp)) { $result . fgets($fp, 1024); } echo url body: $result; fclose($fp); 3、用file_get_contents 以post方式获取内容 $data array (foo bar); $data http_build_query($data); $opts array ( http array ( method POST, header Content-type: application/x-www-form-urlencodedrn . Content-Length: . strlen($data) . rn, content $data ) ); $context stream_context_create($opts); $html file_get_contents(http://localhost/e/admin/test.html, false, $context); echo $html; 4、用fsockopen函数打开url以get方式获取完整的数据包括header和body,fsockopen需要 PHP.ini 中 allow_url_fopen 选项开启 function get_url ($url,$cookiefalse) { $url parse_url($url); $query $url[path].?.$url[query]; echo Query:.$query; $fp fsockopen( $url[host], $url[port]?$url[port]:80 , $errno, $errstr, 30); if (!$fp) { return false; } else { $request GET $query HTTP/1.1rn; $request . Host: $url[host]rn; $request . Connection: Closern; if($cookie) $request.Cookie: $cookien; $request.rn; fwrite($fp,$request); while(!feof($fp)) { $result . fgets($fp, 1024); } fclose($fp); return $result; } } //获取url的html部分去掉header function GetUrlHTML($url,$cookiefalse) { $rowdata get_url($url,$cookie); if($rowdata) { $body stristr($rowdata,rnrn); $bodysubstr($body,4,strlen($body)); return $body; } return false; } 5、用fsockopen函数打开url以POST方式获取完整的数据包括header和body function HTTP_Post($URL,$data,$cookie, $referrer) { // parsing the given URL $URL_Infoparse_url($URL); // Building referrer if($referrer) // if not given use this script as referrer $referrer111; // making string from $data foreach($data as $key$value) $values[]$key.urlencode($value); $data_stringimplode(,$values); // Find out which port is needed – if not given use standard (80) if(!isset($URL_Info[port])) $URL_Info[port]80; // building POST-request: $request.POST .$URL_Info[path]. HTTP/1.1n; $request.Host: .$URL_Info[host].n; $request.Referer: $referern; $request.Content-type: application/x-www-form-urlencodedn; $request.Content-length: .strlen($data_string).n; $request.Connection: closen; $request.Cookie: $cookien; $request.n; $request.$data_string.n; $fp fsockopen($URL_Info[host],$URL_Info[port]); fputs($fp, $request); while(!feof($fp)) { $result . fgets($fp, 1024); } fclose($fp); return $result; } 6、使用curl库使用curl库之前可能需要查看一下php.ini是否已经打开了curl扩展 $ch curl_init(); $timeout 5; curl_setopt ($ch, CURLOPT_URL, ‘http://www.ido321.com/); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents curl_exec($ch); curl_close($ch); echo $file_contents; 来源51CTO