웹 페이지 헤더만 가져오기 위해 PHP를 사용하는 방법: 1. get_headers() 함수를 사용합니다. 2. http_response_header 메서드를 사용합니다. 3. stream_get_meta_data() 함수를 사용합니다. 4. 웹 페이지 헤더를 가져오려면 php CURL을 사용합니다. .
이 기사의 운영 환경: 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 = '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; } ?>
출력 결과는 다음과 같습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!