2011-11-26 2 views
-5

file_get_contents()을 사용하여 변수 $homepage의 특정 부분을 추출하는 방법은 무엇입니까?file_get_contents를 사용하여 특정 데이터 만 추출하는 방법

귀하의 질문은 매우 크게, 그러나 추상적 인 수준에서 당신이 문자열 조작 교훈을 찾고 있다고 생각 요구되지
<?php 
$homepage = file_get_contents('http://www.example.com/'); 
echo $homepage; 
?> 
+3

이 주제와 관련하여 많은 질문을보십시오 : http://stackoverflow.com/search?q=%5Bphp%5D+extract+part+of+a+webpage – deceze

답변

0

가장 좋은 해결책이로드 된 후 $homepage 변수를 처리하기 위해 아마 NO LONGER 수 없습니다. String functionsregular expressions을 살펴보십시오.

file_get_contents() 파일의 일부가로드되는 것을 제어 할 수 있습니다 offsetmaxlen 옵션을 지원하지만 예에서와 같이 로컬이 아닌 파일을 사용하는 경우 "예측할 수없는"로 문서에 의해 설명 된 동작은 offset 있습니다.

말하자면, maxlen은 아마도 안전하므로 파일의 첫 번째 N 비트에 원하는 것을 알고있는 경우이를 끝장 낼 수 있습니다. 따라서 홈페이지의 처음 100 바이트 만 필요하다고 확신하는 경우 file_get_contents ('http://www.example.com/', false, NULL, -1, 100)과 같은 작업을 수행 할 수 있습니다. 그러나 정확히 처음 100 바이트를 원한다면 몇 가지 사후 처리 작업을 수행해야합니다.

자세한 내용은 http://php.net/manual/en/function.file-get-contents.php을 참조하십시오.

1

: 여기, 내가 공유하고 몇 가지 링크입니다

BTW, 그것은 모두 정확히 당신이 추출하고자하는 것에 달려 있습니다. 만약 당신이 우리가 당신의 자리에 대답하는 데 도움이 될 상세한 질문으로 더 자세히 설명 할 수 있다면 !!

환호

PS : 스크린 스크랩은 (DOSENT 진짜로 :) 이해) YOUR 자신의 웹 페이지를 폐기하지 않는 나쁜 생각. 이유는 WWW.EXAMPLE.COM 변경하려는 때 결코 알지 못할, 그리고 조작의 논리는 USEFULL

0

정규 표현식과 PHP의 예입니다.

<?php 
$f = file_get_contents ("http://www.example.com"); 
$f = preg_replace ("(\&nbsp;|\r|\n|\t)", "", $f); // optional 
$f = preg_replace ("/\s\s+/", " ", $f); // optional spaces 

if (preg_match ("/<h1>(.*)<\/h1>/", $f, $res)) { 
    $data = $res [1]; 
} 

echo $data; 
?>