Maison  >  Article  >  développement back-end  >  À quoi devez-vous faire attention lorsque vous obtenez du contenu Web en php ?

À quoi devez-vous faire attention lorsque vous obtenez du contenu Web en php ?

王林
王林original
2019-09-27 11:58:142688parcourir

À quoi devez-vous faire attention lorsque vous obtenez du contenu Web en php ?

Remarques sur l'obtention de contenu Web avec PHP

1. Des erreurs réseau se produiront et toute erreur est possible. Par exemple, la machine est en panne, le câble réseau est déconnecté, le nom de domaine est erroné, le réseau expire, la page a disparu, le site Web saute, le service est banni, la charge de l'hôte n'est pas suffisante...

2. Le serveur a ajouté des restrictions. Autoriser uniquement les navigateurs courants à accéder

3. Le serveur a ajouté des restrictions anti-hotlinking

4. Certains sites Web ne se soucient pas de savoir s'il y en a. un en-tête Accept-Encoding dans votre requête HTTP ou non. Quel est le contenu spécifique ? Quoi qu'il en soit, je vous envoie toujours le contenu gzippé

5. Les liens URL sont toutes sortes de bizarreries, y compris celles avec des caractères chinois, et certains ont même un retour chariot et un saut de ligne

6. Un certain Certains sites Web ont un Content-Type dans l'en-tête HTTP, et il y a plusieurs Content-Types dans la page Web. Ce qui est encore plus scandaleux, c'est que chaque Content-Type. -Le type est différent. Le plus scandaleux est que ces types de contenu ne peuvent pas être utilisés dans le texte, ce qui entraîne des caractères tronqués

7. Le lien réseau est très lent. prend pour analyser des milliers de pages. Je vous suggère de prendre un bon repas

Obtenez-le avec la méthode de contenu Web PHP

Méthode 1. Utilisez la méthode file_get_contents pour implémentez

$url = "http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml";
    $html = file_get_contents($url);
    //如果出现中文乱码使用下面代码
    //$getcontent = iconv("gb2312", "utf-8",$html);
    echo "<textarea style=&#39;width:800px;height:600px;&#39;>".$html."</textarea>";

Méthode 2. Utilisez curl pour implémenter

$url = "http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml";
    
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$html = curl_exec($ch);
curl_close($ch);

echo "<textarea style=&#39;width:800px;height:600px;&#39;>".$html."</textarea>";
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

L'ajout de ce code signifie que si la requête est redirigée, vous pouvez accéder à la version finale page de requête, sinon le résultat de la requête affichera ce qui suit :

<head><title>Object moved</title></head>
<body><h1>Object Moved</h1>This object may be found <a href="some link." rel="external nofoll

Tutoriel recommandé : Tutoriel vidéo PHP

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