Kaedah untuk PHP merangkak halaman web ialah: 1. fail() fungsi; kaedah; 5. fungsi fsockopen().
Persekitaran pengendalian artikel ini: sistem Windows 10, PHP 7.1, komputer thinkpad t480.
Apabila kami melakukan kerja pembangunan, kami biasanya perlu mengambil beberapa fail halaman web Biasanya kami menggunakan PHP untuk mensimulasikan akses penyemak imbas, mengakses alamat url melalui permintaan http, dan kemudian mendapatkan kod sumber html atau data xml. . Walau bagaimanapun, kami tidak boleh mengeluarkan data secara langsung selepas kami mendapatkannya. Kami selalunya perlu mengekstrak kandungan dan kemudian memformatnya untuk memaparkan data dengan cara yang lebih mesra.
Mari kita bincangkan secara ringkas tentang beberapa kaedah dan prinsip halaman merangkak PHP:
1 Kaedah utama halaman merangkak PHP:
fungsi fail()
2. fungsi file_get_contents()
3. mod fopen()->fread()->fclose()
4 . mod soket fungsi fsockopen()
2. Cara utama PHP menghuraikan kod html atau xml:
1. Fungsi file_get_contents()
menggunakan file_get_contents dan fopen untuk mendayakan allow_url_fopen. Kaedah: Edit php.ini dan tetapkan allow_url_fopen = Hidup Apabila allow_url_fopen dimatikan, fopen mahupun file_get_contents tidak boleh membuka fail jauh.
<?php //定义url $url='http://t.qq.com'; //fiel函数读取内容数组 $lines_array=file($url); //拆分数组为字符串 $lines_string=implode('',$lines_array); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo $lines_string;
3. mod fopen()->fread()->fclose()
4. Kaedah Curl<?php //定义url $url='http://t.qq.com'; //file_get_contents函数远程读取数据 $lines_string=file_get_contents($url); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo htmlspecialchars($lines_string);
Ruang diperlukan untuk digunakan curl Hidupkan curl. Kaedah: Ubah suai php.ini di bawah Windows, keluarkan koma bertitik di hadapan extension=php_curl.dll, dan salin ssleay32.dll dan libeay32.dll ke C:WINDOWSsystem32 pasang sambungan curl di bawah Linux.
<?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. mod soket fungsi fsockopen()
Sama ada mod soket boleh dilaksanakan dengan betul juga berkaitan dengan tetapan pelayan Anda boleh menyemak protokol komunikasi yang didayakan oleh pelayan melalui 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;
Tapak web PHP Cina kelas dalam talian ke-17 telah bermula secara rasmi (
latihan php)! Rakan-rakan yang suka pengaturcaraan PHP, cepat daftar!
Atas ialah kandungan terperinci Apakah kaedah untuk merangkak halaman web dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!