찾다
백엔드 개발PHP 문제PHP에서 페이지 콘텐츠를 가져오는 방법은 무엇입니까?

PHP에서 페이지 콘텐츠를 가져오는 방법은 무엇입니까?

PHP에서 웹 콘텐츠를 가져오는 여러 가지 방법

방법 1: file_get_contents를 사용하여 가져오기 모드에서 콘텐츠를 가져옵니다.

<?php 
$url=&#39;http://www.domain.com/?para=123&#39;; 
$html= file_get_contents($url); 
echo$html; 
?>

방법 2: post 모드에서 file_get_contents 함수를 사용하여 URL을 가져옵니다.

<?php 
$url= &#39;http://www.domain.com/test.php?id=123&#39;; 
$data= array(&#39;foo&#39;=> &#39;bar&#39;); 
$data= http_build_query($data); 
$opts= array( 
&#39;http&#39;=> array( 
   &#39;method&#39;=> &#39;POST&#39;, 
   &#39;header&#39;=>"Content-type: application/x-www-form-urlencoded\r\n"  . 
       "Content-Length: "  . strlen($data) . "\r\n", 
   &#39;content&#39;=> $data 
)
); 
$ctx= stream_context_create($opts);
$html= @file_get_contents($url,&#39;&#39;,$ctx);

쿠키 데이터를 다시 전달해야 하는 경우

&#39;header&#39;=>"Content-type: application/x-www-form-urlencoded\r\n"  .
"Content-Length: "  . strlen($data) . "\r\n",

&#39;header&#39;=>"Content-type: application/x-www-form-urlencoded\r\n" .
 "Content-Length: " .strlen($data) . "\r\n".
 "cookie:cookie1=c1;cookie2=c2\r\n";

로 변경하세요.

방법 3: fopen으로 URL을 열고 get 메소드로 콘텐츠를 가져옵니다.

<?php 
$fp= fopen($url,&#39;r&#39;); 
$header= stream_get_meta_data($fp);//获取报头信息 
while(!feof($fp)) { 
$result.= fgets($fp, 1024); 
} 
echo"url header: {$header} <br>": 
echo"url body: $result"; 
fclose($fp); 
?>

관련 권장 사항: "PHP 시작 튜토리얼"

방법 4: fopen을 사용하여 URL을 열고 포스트 모드에서 콘텐츠를 가져옵니다.

<?php 
$data= array(&#39;foo2&#39;=> &#39;bar2&#39;,&#39;foo3&#39;=>&#39;bar3&#39;); 
$data= http_build_query($data); 
$opts= array(
&#39;http&#39;=> array( 
&#39;method&#39;=> &#39;POST&#39;,
&#39;header&#39;=>"Content-type: application/x-www-form-urlencoded\r\nCookie:cook1=c3;cook2=c4\r\n"  . 
"Content-Length: "  . strlen($data) . "\r\n", 
&#39;content&#39;=> $data 
) 
); 
$context= stream_context_create($opts); 
$html= fopen(&#39;http://www.test.com/zzzz.php?id=i3&id2=i4&#39;,&#39;rb&#39;,false, $context); 
$w=fread($html,1024);
echo$w; 
?>

방법 5: fsockopen 함수를 사용하여 URL을 열고 get 모드에서 헤더와 본문을 포함한 전체 데이터를 가져옵니다.

<?php 
functionget_url ($url,$cookie=false) 
{ 
$url= parse_url($url); 
$query= $url[path]."?".$url[query];
echo"Query:".$query;
$fp= fsockopen($url[host],$url[port]?$url[port]:80 , $errno,$errstr, 30); 
if(!$fp) {
returnfalse; 
}else{ 
$request= "GET $query HTTP/1.1\r\n";
$request.= "Host: $url[host]\r\n"; 
$request.= "Connection: Close\r\n"; 
if($cookie)$request.="Cookie:   $cookie\n"; 
$request.="\r\n"; 
fwrite($fp,$request); 
while(!@feof($fp)) { 
$result.= @fgets($fp, 1024); 
} 
fclose($fp); 
return$result; 
} 
} 
//获取url的html部分,去掉header 
functionGetUrlHTML($url,$cookie=false) 
{ 
$rowdata= get_url($url,$cookie); 
if($rowdata) 
{ 
$body=stristr($rowdata,"\r\n\r\n"); 
$body=substr($body,4,strlen($body)); 
return$body; 
}    
   returnfalse; 
} 
?>

방법 6: fsockopen 함수를 사용하여 URL을 열고 POST 모드에서 헤더와 본문을 포함한 전체 데이터를 가져옵니다.

<?php 
functionHTTP_Post($URL,$data,$cookie,$referrer="") 
{ 
   // parsing the given URL 
$URL_Info=parse_url($URL);
   // Building referrer 
if($referrer=="")// if not given use this script as referrer 
$referrer="111"; 
   // making string from $data 
foreach($dataas
$key=>$value) 
$values[]="$key=".urlencode($value); 
$data_string=implode("&",$values);
   // Find out which port is needed - if not given use standard (=80) 
if(!isset($URL_Info["port"])) 
$URL_Info["port"]=80;   
   // building POST-request:
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n"; 
$request.="Referer: $referer\n";
$request.="Content-type: application/x-www-form-urlencoded\n"; 
$request.="Content-length: ".strlen($data_string)."\n"; 
$request.="Connection: close\n";    
   $request.="Cookie:   $cookie\n";    
   $request.="\n"; 
$request.=$data_string."\n";    
   $fp= fsockopen($URL_Info["host"],$URL_Info["port"]); 
fputs($fp,$request); 
while(!feof($fp)) { 
$result.= fgets($fp, 1024); 
} 
fclose($fp);    
   return$result; 
} 
?>

방법 7: 컬 라이브러리를 사용하세요. 컬 라이브러리를 사용하기 전에 php.ini에서 컬 확장 기능이 켜져 있는지 확인해야 할 수도 있습니다.

<?php
$ch= curl_init(); 
$timeout= 5;
curl_setopt ($ch, CURLOPT_URL, &#39;http://www.domain.com/&#39;);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents= curl_exec($ch);
curl_close($ch); 
echo$file_contents;
?>

여기에는 PHP를 사용하여 웹 페이지 소스 코드를 얻고 웹 콘텐츠를 크롤링하는 3가지 방법이 수집되어 있으며 실제 필요에 따라 선택할 수 있습니다.

1. 웹페이지 소스 코드를 얻으려면 file_get_contents를 사용하세요

이 방법은 가장 일반적으로 사용되며 두 줄의 코드만 있으면 됩니다.

참조 코드:

<?php
$fh= file_get_contents(&#39;http://www.webkaka.com/&#39;);
echo $fh;
?>

2. fopen을 사용하여 웹페이지 소스 코드 얻기

이 방법을 사용하는 사람이 많지만 코드가 많습니다.

참조 코드:

<?php
$fh = fopen(&#39;http://www.webkaka.com/&#39;, &#39;r&#39;);
if($fh){
    while(!feof($fh)) {
        echo fgets($fh);
    }
}
?>

3. 컬을 사용하여 웹 페이지 소스 코드 얻기

컬을 사용하여 웹 페이지 소스 코드를 얻는 방법은 예를 들어 크롤링 중에 웹 페이지 콘텐츠를 얻어야 하는 경우에 자주 사용됩니다. 웹 페이지 헤더 정보, ENCODING 인코딩 사용, USERAGENT 사용 등

참조 코드 1:

<?php
// 创建一个新cURL资源
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.webkaka.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// 抓取URL并把它传递给浏览器
data=curlexec(ch);
echo $data;
//关闭cURL资源,并且释放系统资源
curl_close($ch);
?>

참조 코드 2:

<?php
$szUrl = "http://www.webkaka.com/";
$UserAgent = &#39;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 
3.0.04506; 
.NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)&#39;;
$curl = curl_init();
curl_setopt(curl,CURLOPTURL,szUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);  //0表示不输出Header,1表示输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, &#39;&#39;);
curl_setopt(curl,CURLOPTUSERAGENT,UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
data=curlexec(curl);
echo $data;
//echo curl_errno($curl); //返回0时表示程序执行成功 如何从curl_errno返回值获取错误信息

위 내용은 PHP에서 페이지 콘텐츠를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
산과 기본 데이터베이스 : 차이 및 각각을 사용 해야하는시기.산과 기본 데이터베이스 : 차이 및 각각을 사용 해야하는시기.Mar 26, 2025 pm 04:19 PM

이 기사는 산 및 기본 데이터베이스 모델을 비교하여 특성과 적절한 사용 사례를 자세히 설명합니다. 산은 금융 및 전자 상거래 애플리케이션에 적합한 데이터 무결성 및 일관성을 우선시하는 반면 Base는 가용성 및

PHP 보안 파일 업로드 : 파일 관련 취약점 방지.PHP 보안 파일 업로드 : 파일 관련 취약점 방지.Mar 26, 2025 pm 04:18 PM

이 기사는 코드 주입과 같은 취약점을 방지하기 위해 PHP 파일 업로드 보안에 대해 설명합니다. 파일 유형 유효성 검증, 보안 저장 및 오류 처리에 중점을 두어 응용 프로그램 보안을 향상시킵니다.

PHP 입력 유효성 검증 : 모범 사례.PHP 입력 유효성 검증 : 모범 사례.Mar 26, 2025 pm 04:17 PM

기사는 내장 함수 사용, 화이트리스트 접근 방식 및 서버 측 유효성 검사와 같은 기술에 중점을 둔 보안을 향상시키기 위해 PHP 입력 유효성 검증에 대한 모범 사례를 논의합니다.

PHP API 요율 제한 : 구현 전략.PHP API 요율 제한 : 구현 전략.Mar 26, 2025 pm 04:16 PM

이 기사는 토큰 버킷 및 누출 된 버킷과 같은 알고리즘을 포함하여 PHP에서 API 요율 제한을 구현하고 Symfony/Rate-Limiter와 같은 라이브러리 사용 전략에 대해 설명합니다. 또한 모니터링, 동적 조정 요율 제한 및 손도 다룹니다.

PHP 비밀번호 해싱 : password_hash 및 password_verify.PHP 비밀번호 해싱 : password_hash 및 password_verify.Mar 26, 2025 pm 04:15 PM

이 기사에서는 PHP에서 암호를 보호하기 위해 PHP에서 Password_hash 및 Password_Verify 사용의 이점에 대해 설명합니다. 주요 주장은 이러한 기능이 자동 소금 생성, 강한 해싱 알고리즘 및 Secur를 통해 암호 보호를 향상 시킨다는 것입니다.

OWASP Top 10 PHP : 일반적인 취약점을 설명하고 완화하십시오.OWASP Top 10 PHP : 일반적인 취약점을 설명하고 완화하십시오.Mar 26, 2025 pm 04:13 PM

이 기사는 PHP 및 완화 전략의 OWASP Top 10 취약점에 대해 설명합니다. 주요 문제에는 PHP 응용 프로그램을 모니터링하고 보호하기위한 권장 도구가 포함 된 주입, 인증 파손 및 XSS가 포함됩니다.

PHP XSS 예방 : XSS로부터 보호하는 방법.PHP XSS 예방 : XSS로부터 보호하는 방법.Mar 26, 2025 pm 04:12 PM

이 기사는 PHP의 XSS 공격을 방지하기위한 전략, 입력 소독, 출력 인코딩 및 보안 향상 라이브러리 및 프레임 워크 사용에 중점을 둔 전략에 대해 설명합니다.

PHP 인터페이스 대 추상 클래스 : 각각을 사용할 때.PHP 인터페이스 대 추상 클래스 : 각각을 사용할 때.Mar 26, 2025 pm 04:11 PM

이 기사는 각각의 사용시기에 중점을 둔 PHP의 인터페이스 및 추상 클래스 사용에 대해 설명합니다. 인터페이스는 관련없는 클래스 및 다중 상속에 적합한 구현없이 계약을 정의합니다. 초록 클래스는 일반적인 기능을 제공합니다

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전