Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk merangkak hanya pengepala halaman web dalam php

Bagaimana untuk merangkak hanya pengepala halaman web dalam php

藏色散人
藏色散人asal
2021-10-14 09:16:201904semak imbas

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.

Bagaimana untuk merangkak hanya pengepala halaman web dalam php

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 = &#39;http://www.lao8.org/&#39;;
$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, &#39;&#39;); //允许执行gzip
$data=curl_exec($curl); 
if(!curl_errno($curl))
{
    $info = curl_getinfo($curl);
    $httpHeaderSize = $info[&#39;header_size&#39;];  //header字符串体积
    $pHeader = substr($data, 0, $httpHeaderSize); //获得header字符串
    $split   = array("rn", "n", "r");  //需要格式化header字符串
    $pHeader = str_replace($split, &#39;<br>&#39;, $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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn