Maison >développement back-end >Problème PHP >Quelles sont les méthodes pour explorer des pages Web avec PHP ?

Quelles sont les méthodes pour explorer des pages Web avec PHP ?

王林
王林original
2021-09-02 15:43:146083parcourir

Les méthodes permettant à PHP d'explorer les pages Web sont : 1. fonction file() ; 2. fonction file_get_contents() 3. fopen()->fread()->fclose mode ; fonction fsockopen().

Quelles sont les méthodes pour explorer des pages Web avec PHP ?

L'environnement d'exploitation de cet article : système windows10, php 7.1, ordinateur thinkpad t480.

Lorsque nous effectuons un travail de développement, nous devons généralement récupérer certains fichiers de pages Web. Nous utilisons généralement PHP pour simuler l'accès au navigateur, accéder à l'adresse URL via des requêtes http, puis obtenir le code source HTML ou les données XML. Cependant, nous ne pouvons pas générer directement les données après les avoir obtenues. Nous devons souvent extraire le contenu, puis le formater pour afficher les données de manière plus conviviale.

Parlons brièvement de plusieurs méthodes et principes d'exploration des pages PHP :

1 Les principales méthodes d'exploration des pages PHP :

1. Fonction file()

2. ->fread()->fclose() mode

4.curl méthode

5. mode socket de la fonction fsockopen()

2. Principales façons pour PHP d'analyser le code html ou xml :

1. ) fonction

<?php
//定义url
$url=&#39;http://t.qq.com&#39;;
//fiel函数读取内容数组
$lines_array=file($url);
//拆分数组为字符串
$lines_string=implode(&#39;&#39;,$lines_array);
//输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

2. fonction file_get_contents()

Utilisez file_get_contents et fopen pour activer allow_url_fopen. Méthode : modifiez php.ini et définissez Allow_url_fopen = On. Lorsque Allow_url_fopen est désactivé, ni fopen ni file_get_contents ne peuvent ouvrir les fichiers distants.

<?php
//定义url
$url=&#39;http://t.qq.com&#39;;
 //file_get_contents函数远程读取数据
$lines_string=file_get_contents($url);
 //输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo htmlspecialchars($lines_string);

3. Mode fopen()->fread()->fclose()

<?php
//定义url
$url=&#39;http://t.qq.com&#39;;
 //fopen以二进制方式打开
$handle=fopen($url,"rb");
//变量初始化
$lines_string="";
//循环读取数据
do{
    $data=fread($handle,1024);
    if(strlen($data)==0) {
        break;
    }
$lines_string.=$data;
}while(true);
//关闭fopen句柄,释放资源
fclose($handle);
 //输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

4. Méthode Curl

L'utilisation de curl nécessite de l'espace pour ouvrir curl. Méthode : Modifiez php.ini sous Windows, supprimez le point-virgule devant extension=php_curl.dll et copiez ssleay32.dll et libeay32.dll dans C:WINDOWSsystem32 ; installez l'extension curl sous Linux ;

<?php
// 创建一个新cURL资源
$url=&#39;http://t.qq.com&#39;;
$ch=curl_init();
$timeout=5;
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
// 抓取URL
$lines_string=curl_exec($ch);
// 关闭cURL资源,并且释放系统资源
curl_close($ch);
//输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

5. Mode socket de la fonction fsockopen()

La question de savoir si le mode socket peut être exécuté correctement est également liée aux paramètres du serveur. Vous pouvez vérifier quels protocoles de communication sont activés par le serveur via phpinfo.

<?php
$fp = fsockopen("t.qq.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: t.qq.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

Le 17ème cours en ligne du site Web PHP chinois a officiellement commencé (

formation php

) ! Amis qui aiment la programmation PHP, dépêchez-vous et inscrivez-vous !

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