php获取网页内容方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.file_get_contents获取网页内容

$url = "";

$contents = file_get_contents($url);

//如果出现中文乱码使用下面代码

//$getcontent = iconv("gb2312", "utf-8",$contents);

echo $contents;

?>

2.curl获取网页内容

$url = "";

$ch = curl_init();

$timeout = 5;

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

//在需要用户检测的网页里需要增加下面两行

//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD); $contents = curl_exec($ch);

curl_close($ch);

echo $contents;

?>

3.fopen->fread->fclose获取网页内容

$handle = fopen ("", "rb");

$contents = "";

do {

$data = fread($handle, 1024);

if (strlen($data) == 0) {

break;

}

$contents .= $data;

} while(true);

fclose ($handle);

echo $contents;

4,socket获取网页内容

function GETBySocket($URL, $port=80) {

//get host from url

preg_match('/\/\/.*\//sU',$URL,$host_array);

if(!$host_array[0]) {

$URL.='/';

preg_match('/\/\/.*\//sU',$URL,$host_array);

}

$host=substr($host_array[0],2,-1);

//connect

$fp = stream_socket_client("$host:$port", $errcode, $errstr, 1);// or die("get ". $host ." failed");

//

$header = "GET ". $URL. " HTTP/1.1\r\n";

$header .= "Accept: */*\r\n";

$header .= "Accept-Language: zh-cn\r\n";

//$header .= "HTTP_CONNECTION: Keep-Alive\r\n";

$header .= "HTTP_ACCEPT: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png, */*;q=0.5\r\n";

$header .= "HTTP_ACCEPT_CHARSET: gbk,*,utf-8\r\n";

//$header .= "Accept-Encoding: gzip, deflate\r\n";

$header .= "User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1;)\r\n";

$header .= "Host: ". $host ."\r\n";

//$header .= "Connection: Keep-Alive\r\n";

//$header .= "Cookie: cnzz02=2; rtime=1; ltime=1148456424859; cnzz_eid=56601755-\r\n\r\n";

$header .= "Connection: close\r\n\r\n";

stream_socket_sendto($fp, $header);

///////////////////$content=stream_socket_recvfrom($fp,1000,STREAM_PEEK);

$content=stream_get_contents($fp);

fclose($fp);

$position_header=strpos($content, "\r\n\r\n");

if (stripos(substr($content, 0 ,$position_header), 'Transfer-Encoding: chunked')) { return substr($content, strpos($content, "\r\n", $position_header +4)+2);

} else {

return substr($content, $position_header +4);

}

相关文档
最新文档