>  기사  >  백엔드 개발  >  PHP에서 웹페이지 헤더만 크롤링하는 방법

PHP에서 웹페이지 헤더만 크롤링하는 방법

藏色散人
藏色散人원래의
2021-10-14 09:16:201904검색

웹 페이지 헤더만 가져오기 위해 PHP를 사용하는 방법: 1. get_headers() 함수를 사용합니다. 2. http_response_header 메서드를 사용합니다. 3. stream_get_meta_data() 함수를 사용합니다. 4. 웹 페이지 헤더를 가져오려면 php CURL을 사용합니다. .

PHP에서 웹페이지 헤더만 크롤링하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP로 웹 페이지 헤더만 크롤링하는 방법은 무엇입니까?

php에서 웹페이지 헤더 정보를 얻는 방법 4가지

PHP에서 웹페이지 헤더 정보를 얻는 방법은 여러 가지가 있는데, PHP 언어에 관해서는 제가 알고 있는 4가지 방법을 소개하겠습니다. 아래에서 하나씩.

방법 1: get_headers() 함수 사용

추천 색인: ★★★★★

get_header 방법은 가장 간단하며 두 줄의 코드만 필요합니다. 다음과 같습니다:

$thisurl = "http://www.lao8.org/";
print_r(get_headers($thisurl, 1));

결과는 다음과 같습니다:

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
)

방법 2: http_response_header

사용 권장 색인: ★★★

http_response_headerf 방법도 매우 간단하며 세 줄만 있습니다.

$thisurl = "http://www.lao8.org";
$html = file_get_contents($thisurl ); 
print_r($http_response_header);

결과는 다음과 같습니다.

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
)

방법 3: stream_get_meta_data() 함수 사용

권장 색인: ★★★

stream_get_meta_data()를 사용하려면 세 줄의 코드만 필요합니다:

$thisurl = "http://www.lao8.org/";
$fp = fopen($thisurl, 'r'); 
print_r(stream_get_meta_data($fp));

결과는 다음과 같습니다.

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] => 
)

네 번째 방법: PHP의 고급 함수 CURL( )를 사용하여

추천 색인: ★★★★

위의 세 가지 방법을 사용하면 웹페이지에 GZip 압축이 활성화되어 있는지와 같은 더 자세한 헤더 정보를 얻을 수 있습니다. 이때 PHP의 고급 함수인 컬()을 사용하여 얻을 수 있습니다.

curl을 사용하여 헤더를 얻으면 GZip 압축을 감지할 수 있습니다.

코드를 먼저 게시하세요:

<?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;
}
?>

출력 결과는 다음과 같습니다.

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

curl을 사용하여 얻은 헤더 정보에 다음 줄이 있는 것을 볼 수 있습니다. 콘텐츠 인코딩: gzip, 웹 페이지에 GZip 압축이 활성화되어 있습니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 웹페이지 헤더만 크롤링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.