ネットワーク プログラムを開発する場合、多くの場合、非ローカル ファイルを取得する必要があります。通常、PHP を使用してブラウザ アクセスをシミュレートし、http リクエストを通じて URL アドレスにアクセスし、HTML ソース コードまたは XML データを取得します。データを直接出力することはできません。多くの場合、コンテンツを抽出して、よりわかりやすい方法で表示するためにフォーマットする必要があります。
以下は、PHP クローリング ページのいくつかの方法と原則を簡単に紹介します。
1. PHP クローリング ページの主なメソッド:
1. file() 関数
2. 3. fopen()->fread()->fclose() モード
5. fsockopen() 関数ソケット モード
6. ://sourceforge .net/projects/snoopy/)
1. file() 関数
2.関数
file_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'; //fiel函数读取内容数组$lines_array=file($url); //拆分数组为字符串 $lines_string=implode('',$lines_array); //输出内容,嘿嘿,大家也可以保存在自己的服务器上echo $lines_string;
3. fopen()->fread()->fclose() モード
<?php //定义url $url='http://t.qq.com'; //file_get_contents函数远程读取数据$lines_string=file_get_contents($url); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo htmlspecialchars($lines_string);
4.curl を使用して、curl を開きます。方法: Windows で php.ini を変更し、extension=php_curl.dll の前のセミコロンを削除し、ssleay32.dll と libeay32.dll を C:WINDOWSsystem32 にコピーします。Linux では、curl 拡張機能をインストールします。
<?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;
5. fsockopen() 関数のソケット モード
ソケット モードが正しく実行できるかどうかは、サーバーで有効になっている通信プロトコルを phpinfo で確認できます。
<?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;
6. スヌーピー プラグイン、最新バージョンは Snoopy-1.2.4.zip 最終更新日: 2013-05-30 です。
<?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);}
注: エージェントの設定は、Snoopy.class.php ファイルの 45 行目にあります。ファイル内で「var $agent」(引用符内の内容) を検索してください。 PHP を使用してブラウザのコンテンツを取得できます。
南風公園 -- より本格的な PHP プラットフォーム開発
南風は最初に多くのことを共有しましたが、今後も私のガジェットを皆さんと共有し続けます。共有万歳、テクノロジーは永遠に残ります。
このページの全ページアドレス: http://www.cnblogs.com/rirber/archive/2013/06/15/php-server-get-curl-data.html
このページの短縮 URL (URL アドレス) ): http://url.cn/EeOhAy