googleAdsense_widever


PHP - fopen으로 다른 사이트 parsing PHP

Warning: main(): URL file-access is disabled in the server

fopen("http://www.google.com/", 'w')
위와 같이 local이 아닌 원격 파일에 액세스 하려고 할 떄, 발생하는 경고.

php.ini에서
allow_url_fopen = Off
부분을 On으로 바꿔주면 된다.


<?php
$site = "http://www.google.com/search?=".$query;
$fp = fopen($site, 'r');

$contents = fread($fp,4096);
echo $contents;
?>

위와 같이 구글로 서치한 내용을 퍼담아 현재 작성하는 페이지에 출력할 수 있다.
물론, 실제로는 fread 대신 파일포인터를 적당히 잡아서 검색결과만 잘라오는게 모양이 좋다.

fopen 모드는 당연히 read만 가능.

다음 페이지도 같이 참조 : Cliver's a Omtmoa : PHP - 배열 다루기

caution)
다른 페이지를 퍼담아 온다는 것은 해당 페이지에 출력된 텍스트, 이미지 등등만 가져오는 것이 아니라,
대상 페이지의 문서를 가져오는 것이다. 즉, '그 페이지의 소스 코드'만을 생각하여야 한다.
물론 미리 처리되어 나오는 server side script는 제외하고, 그에 의해 생성된 client side script는 포함한다.
특히 태그를 주의해서 써야하는데, 열린 태그부터 포함하여 가져오다가 닫힌 태그 이전에 잘라서 가져와버리면 예상대로 출력이 안되고, 소스와 일반 text의 순서가 예상과는 다르게 뒤죽박죽이 될수도 있다.
따라서 열린 태그를 포함하였다면 닫힌태그의 위치도 파악해서 함께 가져와야 한다.

그리고 각종 변수에 따라 소스코드의 길이가 변하는지도 살펴봐야하는데, 
그렇게 code line이 바뀌어버리면 예상과는 다른 부분을 잘라내서 가져와버리게 된다.
참 어렵다..




덧글

댓글 입력 영역


공지

어서오십시오.
트위터 : @FCliver
기저심리학 : 네이버카페
카카오톡 : FCliver
페이스북 : Fredric Cliver

통계 위젯 (화이트)

50
50
288880

접속자 위치