Cara menggunakan php untuk hanya mengambil pengepala halaman web: 1. Gunakan fungsi get_headers() 2. Gunakan kaedah http_response_header; 3. Gunakan fungsi stream_get_meta_data() 4. Gunakan php CURL pengepala halaman web.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3
Cara merangkak hanya pengepala halaman web dengan php?
4 cara untuk mendapatkan maklumat pengepala halaman web dalam php
Terdapat banyak cara untuk mendapatkan maklumat pengepala halaman web dalam php setakat bahasa php prihatin, saya tahu Terdapat 4 kaedah, satu persatu di bawah.
Kaedah 1: Gunakan fungsi get_headers()
Indeks pengesyoran: ★★★★★
Kaedah get_header adalah yang paling mudah dan hanya memerlukan dua baris kod. Seperti berikut:
$thisurl = "http://www.lao8.org/"; print_r(get_headers($thisurl, 1));
Hasil yang diperoleh ialah:
Array ( [0] => HTTP/1.1 200 OK [Cache-Control] => max-age=86400 [Content-Length] => 76102 [Content-Type] => text/html [Content-Location] => http://www.lao8.org/index.html [Last-Modified] => Fri, 19 Jul 2013 03:52:30 GMT [Accept-Ranges] => bytes [ETag] => "50bc48643384ce1:5cb3" [Server] => Microsoft-IIS/6.0 [X-Powered-By] => ASP.NET [Date] => Fri, 19 Jul 2013 09:06:39 GMT [Connection] => close )
Kaedah 2: Gunakan http_response_header
Indeks yang disyorkan: ★★★
http_response_headerf kaedah Ia juga sangat mudah, hanya tiga baris:
$thisurl = "http://www.lao8.org"; $html = file_get_contents($thisurl ); print_r($http_response_header);
Hasilnya ialah:
Array ( [0] => HTTP/1.1 200 OK [1] => Cache-Control: max-age=86400 [2] => Content-Length: 76102 [3] => Content-Type: text/html [4] => Content-Location: http://www.lao8.org/index.html [5] => Last-Modified: Fri, 19 Jul 2013 03:52:30 GMT [6] => Accept-Ranges: bytes [7] => ETag: "50bc48643384ce1:5cb3" [8] => Server: Microsoft-IIS/6.0 [9] => X-Powered-By: ASP.NET [10] => Date: Fri, 19 Jul 2013 09:06:41 GMT [11] => Connection: close )
Kaedah 3: Gunakan fungsi stream_get_meta_data()
Indeks yang disyorkan : ★★ ★
Ia hanya memerlukan tiga baris kod untuk menggunakan stream_get_meta_data():
$thisurl = "http://www.lao8.org/"; $fp = fopen($thisurl, 'r'); print_r(stream_get_meta_data($fp));
Hasilnya ialah:
Array ( [wrapper_data] => Array ( [0] => HTTP/1.1 200 OK [1] => Cache-Control: max-age=86400 [2] => Content-Length: 76102 [3] => Content-Type: text/html [4] => Content-Location: http://www.lao8.org/index.html [5] => Last-Modified: Fri, 19 Jul 2013 03:52:30 GMT [6] => Accept-Ranges: bytes [7] => ETag: "50bc48643384ce1:5cb3" [8] => Server: Microsoft-IIS/6.0 [9] => X-Powered-By: ASP.NET [10] => Date: Fri, 19 Jul 2013 09:06:41 GMT [11] => Connection: close ) [wrapper_type] => http [stream_type] => tcp_socket [mode] => r+ [unread_bytes] => 1086 [seekable] => [uri] => http://www.lao8.org/ [timed_out] => [blocked] => 1 [eof] => )
Kaedah keempat: Gunakan lanjutan PHP Function CURL() untuk mendapatkan
indeks pengesyoran: ★★★★
Tiga kaedah di atas boleh mendapatkan maklumat pengepala halaman web umum Jika anda ingin mendapatkan maklumat pengepala yang lebih terperinci, seperti sama ada halaman web adalah pemampatan GZip didayakan. Pada masa ini, anda boleh menggunakan fungsi lanjutan PHP curl() untuk mendapatkannya.
Gunakan curl untuk mendapatkan pengepala mengesan pemampatan GZip
Siarkan kod dahulu:
<?php $szUrl = 'http://www.lao8.org/'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $szUrl); curl_setopt($curl, CURLOPT_HEADER, 1); //输出header信息 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //不显示网页内容 curl_setopt($curl, CURLOPT_ENCODING, ''); //允许执行gzip $data=curl_exec($curl); if(!curl_errno($curl)) { $info = curl_getinfo($curl); $httpHeaderSize = $info['header_size']; //header字符串体积 $pHeader = substr($data, 0, $httpHeaderSize); //获得header字符串 $split = array("rn", "n", "r"); //需要格式化header字符串 $pHeader = str_replace($split, '<br>', $pHeader); //使用<br>换行符格式化输出到网页上 echo $pHeader; } ?>
Hasil output adalah seperti berikut:
HTTP/1.1 200 OK Cache-Control: max-age=86400 Content-Length: 15189 Content-Type: text/html Content-Encoding: gzip Content-Location: http://www.lao8.org/index.html Last-Modified: Fri, 19 Jul 2013 03:52:28 GMT Accept-Ranges: bytes ETag: "0268633384ce1:5cb3" Vary: Accept-Encoding Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Date: Fri, 19 Jul 2013 09:27:21 GMT
Anda boleh melihat bahawa maklumat pengepala yang diperoleh menggunakan curl mempunyai baris ini: Pengekodan Kandungan: gzip dan pemampatan GZip didayakan pada halaman web.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk merangkak hanya pengepala halaman web dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!