Heim > Backend-Entwicklung > PHP-Problem > Welche Möglichkeiten gibt es, Seiteninhalte in PHP abzurufen?

Welche Möglichkeiten gibt es, Seiteninhalte in PHP abzurufen?

爱喝马黛茶的安东尼
Freigeben: 2023-02-23 12:06:01
Original
4947 Leute haben es durchsucht

Welche Möglichkeiten gibt es, Seiteninhalte in PHP abzurufen?

Mehrere Möglichkeiten, Webinhalte in PHP abzurufen

Methode 1: Verwenden Sie file_get_contents, um den Inhalt im Get-Modus abzurufen .

<?php 
$url=&#39;http://www.domain.com/?para=123&#39;; 
$html= file_get_contents($url); 
echo$html; 
?>
Nach dem Login kopieren

Methode 2: Verwenden Sie die Funktion file_get_contents, um die URL im Post-Modus abzurufen.

<?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);
Nach dem Login kopieren

Wenn Sie erneut Cookie-Daten übergeben müssen, ändern Sie einfach

&#39;header&#39;=>"Content-type: application/x-www-form-urlencoded\r\n"  .
"Content-Length: "  . strlen($data) . "\r\n",
Nach dem Login kopieren

in

&#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";
Nach dem Login kopieren

.

Methode 3: Verwenden Sie fopen, um die URL zu öffnen und den Inhalt im Get-Modus abzurufen.

<?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); 
?>
Nach dem Login kopieren

Verwandte Empfehlungen: „PHP Erste Schritte Tutorial

Methode 4: Verwenden Sie fopen, um die URL zu öffnen und den Inhalt im Post-Modus abzurufen.

<?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; 
?>
Nach dem Login kopieren

Methode 5: Verwenden Sie die fsockopen-Funktion, um die URL zu öffnen und die vollständigen Daten im Get-Modus abzurufen, einschließlich Header und Text.

<?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 $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 
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; 
} 
?>
Nach dem Login kopieren

Methode 6: Verwenden Sie die Funktion fsockopen, um die URL zu öffnen und die vollständigen Daten im POST-Modus abzurufen, einschließlich Header und Text.

<?php 
functionHTTP_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($dataas
$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; 
} 
?>
Nach dem Login kopieren

Methode 7: Verwenden Sie die Curl-Bibliothek. Bevor Sie die Curl-Bibliothek verwenden, müssen Sie möglicherweise überprüfen, ob die Curl-Erweiterung in php.ini aktiviert wurde.

<?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

Hier sind drei Methoden zur Verwendung von PHP zum Abrufen des Quellcodes einer Webseite und zum Crawlen von Webinhalten, die wir entsprechend den tatsächlichen Anforderungen auswählen können.

1. Verwenden Sie file_get_contents, um den Quellcode der Webseite zu erhalten.

Diese Methode wird am häufigsten verwendet und erfordert nur zwei Codezeilen. Sie ist sehr einfach und praktisch.

Referenzcode:

<?php
$fh= file_get_contents(&#39;http://www.webkaka.com/&#39;);
echo $fh;
?>
Nach dem Login kopieren

2. Verwenden Sie fopen, um den Quellcode der Webseite zu erhalten

Viele Leute verwenden diese Methode, aber sie enthält viel Code.

Referenzcode:

<?php
$fh = fopen(&#39;http://www.webkaka.com/&#39;, &#39;r&#39;);
if($fh){
    while(!feof($fh)) {
        echo fgets($fh);
    }
}
?>
Nach dem Login kopieren

3. Verwenden Sie Curl, um den Quellcode einer Webseite zu erhalten.

Die Verwendung von Curl zum Abrufen des Quellcodes einer Webseite wird häufig von Personen mit höheren Anforderungen verwendet, z Wenn Sie den Inhalt einer Webseite crawlen müssen, können Sie auch die Kopfzeileninformationen der Webseite, die Verwendung der ENCODING-Codierung, die Verwendung von USERAGENT usw. abrufen.

Referenzcode eins:

<?php
// 创建一个新cURL资源
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.webkaka.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// 抓取URL并把它传递给浏览器
data=curlexec(ch);
echo $data;
//关闭cURL资源,并且释放系统资源
curl_close($ch);
?>
Nach dem Login kopieren

Referenzcode zwei:

<?php
$szUrl = "http://www.webkaka.com/";
$UserAgent = &#39;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 
3.0.04506; 
.NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)&#39;;
$curl = curl_init();
curl_setopt(curl,CURLOPTURL,szUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);  //0表示不输出Header,1表示输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, &#39;&#39;);
curl_setopt(curl,CURLOPTUSERAGENT,UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
data=curlexec(curl);
echo $data;
//echo curl_errno($curl); //返回0时表示程序执行成功 如何从curl_errno返回值获取错误信息
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Seiteninhalte in PHP abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage