2010-07-26 4 views
1

PHP 스크립트에서 get 요청을 실행해야하지만 상당히 제한된 환경 (꽉 방화벽, PHP 설치 등을 수정할 수 없음 ...)).제한된 환경에서 PHP 스크립트의 GET 요청

fsockopen()이 오류를 반환하고 http_get()이 설치되지 않은 것처럼 보입니다. 내가 아는 또 다른 유일한 방법은 file_get_contents()를 호출하는 것입니다. 요청에서 참조 헤더를 설정해야한다는 사실을 제외하고는 정상적으로 작동합니다 (file_get_contents()로는 할 수 없다고 생각합니다).

사람은 PHP를 통해 GET 요청을 실행하는 다른 방법을 알고 있나요

감사

편집 :?!.. 또한, CURL는 :-(

+0

+1 잘 형성 한 질문의 경우. – JClaspill

답변

2

HTTP contextfile_get_contents()을 사용하여 헤더를 설정할 수 있습니다. 예를 들면

$opts = array(
    'http'=>array(
    'method'=>"GET", 
    'header'=>"Accept-language: en\r\n" . 
       "Referer: http://foo.bar.com\r\n" 
) 
); 

$context = stream_context_create($opts); 
$fp = fopen('http://www.example.com', 'r', false, $context); 
fpassthru($fp); 
fclose($fp); 
+0

감사합니다 Otterfan! 나는 그 대답을 가로 질러 달렸고 약 8 분 전에 당신 앞에 게시했습니다 :-D - 도와 줘서 고마워요. – loneboat

+0

+1 아름다운 형식. – JClaspill

1
PHP에서

참조 CURL 기능

사용할 수 없습니다
+0

답변 주셔서 감사합니다 - 사용할 수없는 방법 목록에 CURL을 추가하는 것을 잊었습니다. :-(감사합니다, 비록! – loneboat

0

몇 가지 추가 연구가 끝난 후, 내가 가진 리소스가 stream_context_create()를 사용하여 컨텍스트 스트림에서 헤더를 만드는 것이 가장 좋습니다.이 스트림을 file_get_contents()로 보낼 수 있습니다. 그걸 몰랐어!