Heim > php教程 > PHP源码 > php 获取页面内容

php 获取页面内容

PHP中文网
Freigeben: 2016-05-25 17:04:27
Original
999 Leute haben es durchsucht

php 获取页面内容

方法1: 用file_get_contents 以get方式获取内容 
<?php 
$url=&#39;http://www.domain.com/?para=123&#39;; 
$html = file_get_contents($url); 
echo $html; 
?> 
 
方法2:用file_get_contents函数,以post方式获取url 
<?php 
$url = &#39;http://www.domain.com/test.php?id=123&#39;; 
$data = array (&#39;foo&#39; => &#39;bar&#39;); 
$data = http_build_query($data); 
 
$opts = array ( 
&#39;http&#39; => array ( 
   &#39;method&#39; => &#39;POST&#39;, 
   &#39;header&#39;=> "Content-type: application/x-www-form-urlencoded\r\n" . 
                     "Content-Length: " . strlen($data) . "\r\n", 
   &#39;content&#39; => $data
) 
); 
$ctx = stream_context_create($opts); 
$html = @file_get_contents($url,&#39;&#39;,$ctx); 
 
如果需要再传递cookie数据,则把 
&#39;header&#39;=> "Content-type: application/x-www-form-urlencoded\r\n" . 
                  "Content-Length: " . strlen($data) . "\r\n", 
修改为 
&#39;header&#39;=> "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, &#39;r&#39;); 
$header = stream_get_meta_data($fp);//获取报头信息 
while(!feof($fp)) { 
$result .= fgets($fp, 1024); 
} 
echo "url header: {$header} <br>": 
echo "url body: $result"; 
fclose($fp); 
?> 
 
方法4: 用fopen打开url, 以post方式获取内容 
<?php 
$data = array (&#39;foo2&#39; => &#39;bar2&#39;,&#39;foo3&#39;=>&#39;bar3&#39;); 
$data = http_build_query($data); 
 
$opts = array ( 
&#39;http&#39; => array ( 
&#39;method&#39; => &#39;POST&#39;, 
&#39;header&#39;=> "Content-type: application/x-www-form-urlencoded\r\nCookie:cook1=c3;cook2=c4\r\n" . 
"Content-Length: " . strlen($data) . "\r\n", 
&#39;content&#39; => $data
) 
); 
 
$context = stream_context_create($opts); 
$html = fopen(&#39;http://www.test.com/zzzz.php?id=i3&id2=i4&#39;,&#39;rb&#39; ,false, $context); 
$w=fread($html,1024); 
echo $w; 
?> 
 
方法5:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body 
<?php 
function get_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) { 
return false; 
} else { 
$request = "GET $query 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 
function GetUrlHTML($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; 
} 
 
   return false; 
} 
?> 
 
方法6:用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body 
<?php 
function HTTP_Post($URL,$data,$cookie, $referrer="") 
{ 
 
   // parsing the given URL 
$URL_Info=parse_url($URL); 
 
   // Building referrer 
if($referrer=="") // if not given use this script as referrer 
$referrer="111"; 
 
   // making string from $data 
foreach($data as $key=>$value) 
$values[]="$key=".urlencode($value); 
$data_string=implode("&",$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.1\n"; 
$request.="Host: ".$URL_Info["host"]."\n"; 
$request.="Referer: $referer\n"; 
$request.="Content-type: application/x-www-form-urlencoded\n"; 
$request.="Content-length: ".strlen($data_string)."\n"; 
$request.="Connection: close\n"; 
 
   $request.="Cookie:   $cookie\n"; 
 
   $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; 
} 
 
?> 
 
方法7:使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展 
<?php 
$ch = curl_init(); 
$timeout = 5; 
curl_setopt ($ch, CURLOPT_URL, &#39;http://www.domain.com/&#39;); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$file_contents = curl_exec($ch); 
curl_close($ch); 
 
echo $file_contents; 
?>
Nach dem Login kopieren

                   

以上就是php 获取页面内容的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage