Maison  >  Article  >  développement back-end  >  Qu'est-ce que PHP utilise pour la collecte de données ?

Qu'est-ce que PHP utilise pour la collecte de données ?

(*-*)浩
(*-*)浩original
2019-09-18 11:55:482566parcourir

Qu'est-ce que la collecte ?

Il s'agit d'utiliser un programme PHP pour capturer des informations provenant d'autres sites Web dans notre propre base de données et notre propre site Web.

Qu'est-ce que PHP utilise pour la collecte de données ?

Technologie de production et de collecte PHP :

Du socket inférieur à la fonction d'exploitation de fichiers de haut niveau, il existe un total de 3 méthodes. Implémenter la collecte.

1. Utilisez la technologie socket pour collecter : (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)

La collection de sockets est le niveau le plus bas. Cela établit simplement une longue connexion, puis nous devons construire nous-mêmes la chaîne de protocole http pour envoyer la requête.

Par exemple, si vous souhaitez obtenir le contenu de la page Youku, écrivez ce qui suit en utilisant socket :

<?php  
//连接,$error错误编号,$errstr错误的字符串,30s是连接超时时间  
$fp=fsockopen("www.youku.com",80,$errno,$errstr,30);  
if(!$fp) die("连接失败".$errstr);  
   
//构造http协议字符串,因为socket编程是最底层的,它还没有使用http协议  
$http="GET /?spm=a2hww.20023042.topNav.5~1~3!2~A HTTP/1.1\r\n";   //  \r\n表示前面的是一个命令  
$http.="Host:www.youku.com\r\n";  //请求的主机  
$http.="Connection:close\r\n\r\n";   // 连接关闭,最后一行要两个\r\n  
   
//发送这个字符串到服务器  
fwrite($fp,$http,strlen($http));  
//接收服务器返回的数据  
$data=&#39;&#39;;  
while (!feof($fp)) {  
$data.=fread($fp,4096);  //fread读取返回的数据,一次读取4096字节  
}  
//关闭连接  
fclose($fp);  
var_dump($data);  
?>

Le résultat imprimé est le suivant, y compris les informations d'en-tête renvoyées et le code source de la page :

Quest-ce que PHP utilise pour la collecte de données ?

2. Utilisez curl_un ensemble de fonctions

curl encapsule le protocole HTTP dans de nombreuses fonctions, et vous pouvez transmettre directement les paramètres correspondants, ce qui réduit le temps d'écriture et la difficulté des chaînes du protocole HTTP.

Prérequis : L'extension curl doit être activée dans php.ini.

function getHTTPS($url) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_REFERER, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  $result = curl_exec($ch);
  curl_close($ch);
  return $result;
}
var_dump(getHTTPS($url));

Le résultat imprimé est le suivant, incluant uniquement le code source de la page :

Quest-ce que PHP utilise pour la collecte de données ?

Utilisez directement file_get_contents (niveau supérieur). )

Prérequis : Définir l'adresse url qui permet d'ouvrir un réseau dans php.ini.

Quest-ce que PHP utilise pour la collecte de données ?

//使用file_get_contents()  
$data=file_get_contents("http://www.youku.com");  
var_dump($data);

Quest-ce que PHP utilise pour la collecte de données ?

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