Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Methoden gibt es, um eine URL in PHP anzufordern?

Welche Methoden gibt es, um eine URL in PHP anzufordern?

零下一度
零下一度Original
2017-07-16 16:39:373809Durchsuche

Eine Zusammenfassung verschiedener Methoden zum Öffnen von URL-Adressen in PHP. Die Funktionen hier werden hauptsächlich für Funktionen wie die Sammlung von Dieben verwendet.

1: Verwenden Sie file_get_contents

, um den Inhalt im Get-Modus abzurufen

<?php 
$url=&#39;www.baidu.com/&#39;; 
$html = file_get_contents($url); 
//print_r($http_response_header); 
ec($html); 
printhr(); 
printarr($http_response_header); 
 
printhr(); 
?>

Beispielcode 2: Verwenden Sie fopen, um die URL zu öffnen,

Den Inhalt in der Get-Methode abrufen

<? 
$fp = fopen($url, &#39;r&#39;); 
 
printarr(stream_get_meta_data($fp)); 
printhr(); 
while(!feof($fp)) { 
 
$result .= fgets($fp, 1024); 
} 
echo "url body: $result"; 
 
printhr(); 
fclose($fp); 
?>

Beispielcode 3: Verwenden Sie die Funktion „file_get_contents“, um die URL in der Post-Methode abzurufen

<?php 
$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" . 
"Content-Length: " . strlen($data) . 
"", 
&#39;content&#39; => $data 
), 
); 
$context = 
stream_context_create($opts); 
$html = 
file_get_contents(&#39;localhost/e/admin/test.html&#39;, false, $context); 
 
echo $html; 
?>

Beispielcode 4: Verwenden Sie die Funktion fsockopen, um die URL in der Get-Methode zu öffnen. Erhalten Sie vollständige Daten, einschließlich Header und Text.

<? 
function get_url 
($url,$cookie=false) { 
$url = parse_url($url); 
$query = 
$url[path]."?".$url[query]; 
ec("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"; 
 
$request .= "Host: $url[host]"; 
$request .= "Connection: Close"; 
 
if($cookie) $request.="Cookie: $cookie\n"; 
$request.=""; 
 
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,""); 
$body=substr($body,4,strlen($body)); 
return $body; 
} 
return false; 
} 
?>

Bei der Suche ist in Zeile 4 des Programms ein Problem aufgetreten Relevante Informationen, ich habe festgestellt, dass es viele Methoden gibt. Erfahren Sie mehr über die fünf Methoden zum Anfordern von URLs in PHP, einschließlich der Verwendung der Funktion fopen(), der Funktion file() und file_get_contents ()-Funktion, curl() zum Anfordern von Remote-URL-Daten und exec() zum Ausführen von Befehlszeilenbefehlen

Dieser Artikel stellt Ihnen hauptsächlich die fünf Methoden zum Anfordern von URLs in PHP vor und stellt sie als Referenz vor Werfen wir ohne weiteres einen Blick auf die ausführliche Einführung:

Fünf Methoden:

  • Die erste Drei sind grundlegende PHP-Dateioperationsfunktionen

  • ist die PHP-Erweiterung, die unter Linux aktiviert werden muss curl()

  • Der Befehl wget war beim Testen der lokalen virtuellen Maschine zum Anfordern von www.baidu.com nicht erfolgreich, aber angesichts des Problems der DNS-Auflösung funktionierten wir direkt Die angeforderte IP erfolgreich habe die Datei index.html heruntergeladen.
  • Hier werden nur Methoden aufgeführt. Die Vor- und Nachteile erfordern ein detailliertes Verständnis der Funktionen und Nachteile jeder Methode. exec()

    1. fopen()-Funktion

2. file()-Funktion

$file = fopen("www.jb51.net", "r") or die("打开远程文件失败!");
while (!feof($file)) {
 $line = fgets($file, 1024);
 //使用正则匹配标题标记
 if (preg_match("/<title>(.*)<\/title>/i", $line, $out)) { 
 $title = $out[1]; //将标题标记中的标题字符取出
 break; //退出循环,结束远程文件读取
 }
}
fclose($file);

3. file_get_contents() Funktion


$lines = file("www.jb51.net/article/48866.htm");
readfile(www.jb51.net/article/48866.htm);

4. curl() fordert Remote-URL-Daten an


$content = file_get_contents(www.jb51.net/article/48866.htm);

5. exec() führt den Kommandozeilenbefehl


aus

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es, um eine URL in PHP anzufordern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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