#この記事の動作環境: Windows10 システム、php 7.1、thinkpad t480 コンピューター。 開発作業を行うときは、通常、Web ページ ファイルを取得する必要があります。通常、PHP を使用してブラウザ アクセスをシミュレートし、http リクエストを通じて URL アドレスにアクセスし、HTML ソース コードまたは XML データを取得します。 。ただし、データを取得した後に直接出力することはできないため、データをよりわかりやすく表示するためにコンテンツを抽出し、フォーマットする必要があることがよくあります。 PHP クロール ページのいくつかの方法と原則について簡単に説明します: 1. PHP クロール ページの主なメソッド: 1. file() 関数Web ページをクロールするための PHP メソッドには次のものがあります: 1. file() 関数; 2. file_get_contents() 関数; 3. fopen()->fread()->fclose モード; 4.curl メソッド; 5. fsockopen() 関数。
2. file_get_contents() 関数 3. fopen()->fread()->fclose() モード 4.curl メソッド 5 . fsockopen() 関数 ソケット モード 2. PHP が HTML または XML コードを解析する主な方法: 1. file() 関数
<?php //定义url $url='http://t.qq.com'; //fiel函数读取内容数组 $lines_array=file($url); //拆分数组为字符串 $lines_string=implode('',$lines_array); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo $lines_string;2. file_get_contents( )Functionfile_get_contents を使用し、fopen には、allow_url_fopen を有効にするためのスペースが必要です。方法: php.ini を編集し、allow_url_fopen = On に設定します。allow_url_fopen がオフになると、fopen も file_get_contents もリモート ファイルを開くことができなくなります。
<?php //定义url $url='http://t.qq.com'; //file_get_contents函数远程读取数据 $lines_string=file_get_contents($url); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo htmlspecialchars($lines_string);3. fopen()->fread()->fclose() モード
<?php //定义url $url='http://t.qq.com'; //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. Curl メソッドcurl を使用するには、curl を開くためのスペースが必要です。方法: Windows では php.ini を変更し、extension=php_curl.dll の前のセミコロンを削除し、ssleay32.dll と libeay32.dll を C:\WINDOWS\system32 にコピーします。Linux では、curl 拡張機能をインストールします。
<?php // 创建一个新cURL资源 $url='http://t.qq.com'; $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. fsockopen() 関数のソケットモードソケットモードが正しく実行できるかどうかはサーバーの設定にも関係しており、具体的にはサーバーでどの通信プロトコルが有効になっているかを確認できます。 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); }第17回PHP中国語ウェブサイトオンラインクラスが正式に始まりました(
phpトレーニング)! PHP プログラミングが好きな友達は、急いでサインアップしてください。
以上がPHPでWebページをクロールするにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。