Maison  >  Article  >  développement back-end  >  Quelles sont les méthodes pour demander une URL en php

Quelles sont les méthodes pour demander une URL en php

零下一度
零下一度original
2017-07-16 16:39:373794parcourir

Un résumé de plusieurs méthodes d'ouverture d'adresses URL en PHP. Les fonctions ici sont principalement utilisées pour des fonctions telles que la collecte de voleurs.

1 : Utilisez file_get_contents

pour obtenir le contenu en mode obtenir

<?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(); 
?>

Exemple de code 2 : Utilisez fopen pour ouvrir l'URL,

Récupérez le contenu dans la méthode get

<? 
$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); 
?>

Exemple de code 3 : utilisez la fonction file_get_contents pour obtenir l'URL dans la méthode post

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

Exemple de code 4 : Utilisez la fonction fsockopen pour ouvrir l'URL dans la méthode get Obtenir des données complètes, y compris l'en-tête et le corps

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

J'ai récemment rencontré un problème lors du développement. La ligne 4 du programme demandera une URL en recherchant. Informations pertinentes, j'ai trouvé qu'il existe de nombreuses méthodes. Cet article vous le présentera. Découvrez les cinq méthodes de demande d'URL en PHP, notamment l'utilisation de la fonction fopen(), de la fonction file() et de file_get_contents. (), curl() pour demander des données d'URL distantes et exec() pour exécuter des commandes de ligne de commande

Cet article vous présente principalement les cinq méthodes de demande d'URL en PHP, et les partage pour votre référence et. étude. Je ne dirai pas grand-chose ci-dessous, jetons un œil à l'introduction détaillée :

Cinq méthodes :

  • Les trois premiers sont des fonctions de base d'exploitation de fichiers PHP

  • curl() est l'extension php qui doit être activée Sous Linux, elle doit être installée. >

  • La commande wget n'a pas réussi lors du test de la machine virtuelle locale pour demander www.baidu.com, mais elle a fonctionné sur le serveur distant. Compte tenu du problème de résolution DNS, nous l'avons directement. L'adresse IP demandée a téléchargé avec succès le fichier index.html.

    exec()Seules les méthodes sont fournies ici. Les avantages et les inconvénients nécessitent une compréhension détaillée des fonctions et des inconvénients de chaque méthode.

  • 1. Fonction fopen()

2. >

$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. Fonction file_get_contents()


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

4. curl() demande des données d'URL distantes


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

5. exec() exécute la commande de ligne de commande

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn