http://www.jmtsubs.com

【北京快乐8网址】php获取页面内容的方法有哪些-PHP问题

PHP获取网页内容的几种方法

方法1:用file_get_contents以get方式获取内容。

<?php $url='http://www.domain.com/?para=123'; $html= file_get_contents($url); echo$html; ?>

方法2:用file_get_contents函数,以post方式获取url。

<?php $url= 'http://www.domain.com/test.php?id=123'; $data= array('foo'=> 'bar'); $data= http_build_query($data); $opts= array( 'http'=> array(    'method'=> 'POST',    'header'=>"Content-type: application/x-www-form-urlencoded\r\n"  .        "Content-Length: "  . strlen($data) . "\r\n",    'content'=> $data )); $ctx= stream_context_create($opts);$html= @file_get_contents($url,'',$ctx);

如果需要再传递cookie数据,则把

'header'=>"Content-type: application/x-ww]w-form-urlencoded\r\n"  ."Content-Length: "  . strlen($data) . "\r\n",

修改为

'header'=>"Content-type: application/x-www-form-urlencoded\r\n" . "Content-Length: " .strlen($data) . "\r\n". "cookie:cookie1=c1;cookie2=c2\r\n";

即可。

方法3:用fopen打开url,以get方式获取内容。

<?php $fp= fopen($url,'r'); $header= stream_get_meta_data($fp);//获取报头信息 while(!feof($fp)) { $result.= fgets($fp, 1024); } echo"url header: {$header} <br>": echo"url body: $result"; fclose($fp); ?>

相关推荐:《PHP入门教程》

方法4:用fopen打开url,以post方式获取内容。

<?php $data= array('foo2'=> 'bar2','foo3'=>'bar3'); $data= http_build_query($data); $opts= array('http'=> array( 'method'=> 'POST','header'=>"Content-type: application/x-www-form-urlencoded\r\nCookie:cook1=c3;cook2=c4\r\n"  . "Content-Length: "  . strlen($data) . "\r\n", 'content'=> $data ) ); $context= stream_context_create($opts); $html= fopen('http:/)/www.test.com/zzzz.php?id=i3&id2=i4','rb',false, $context); $w=fread($html,1024);echo$w; ?>

方法5:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body。

<?php functionget_url ($url,$cookie=false) { $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) {returnfalse; }else{ $request= "GET $qu(ery HTTP/1.1\r\n";$request.= "Host: $url[host]\r\n"; $request.= "Connection: Close\r\n"; if($cookie)$request.="Cookie:   $cookie\n"; $request.="\r\n"; fwrite($fp,$request); while(!@feof($fp)) { $result.= @fgets($fp, 1024); } fclose($fp); return$result; } } //获取url的html部分,去掉header functionGetUrlHTML($url,$cookie=false) { $rowdata= get_url($url,$cookie); if($rowdata) { $body=stristr($rowdata,"\r\n\r\n"); $body=substr($body,4,strlen($body)); return$body; }       returnfalse; } ?>
                

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

上一篇:工信部:之前从未、将来也不会要求运营商降低4G速率 - 工信部,5G,4G
下一篇:没有了