[php] PHP에서 GET 요청을 보내는 방법은 무엇입니까?

간단한 요구 사항에 PHP를 사용할 계획입니다. URL에서 XML 컨텐츠를 다운로드해야하며,이 URL로 HTTP GET 요청을 보내야합니다.

PHP에서 어떻게합니까?



답변

파일 내용 이상의 것을 필요로하지 않으면을 사용할 수 있습니다 file_get_contents.

$xml = file_get_contents("http://www.example.com/file.xml");

더 복잡한 것은 cURL을 사용 합니다.


답변

보다 고급 GET / POST 요청을 위해 CURL 라이브러리 ( http://us3.php.net/curl )를 설치할 수 있습니다 .

$ch = curl_init("REMOTE XML FILE URL GOES HERE"); // such as http://example.com/example.xml
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);


답변

http_get트릭을해야합니다. http_getover 의 장점 file_get_contents에는 HTTP 헤더를보고 요청 세부 사항에 액세스하며 연결 ​​시간 종료를 제어하는 ​​기능이 포함됩니다.

$response = http_get("http://www.example.com/file.xml");


답변

프록시를 사용하는 경우 PHP 코드에서 약간의 트릭을 수행해야합니다.

(PROXY WITHOUT AUTENTICATION EXAMPLE)

<?php
$aContext = array(
    'http' => array(
        'proxy' => 'proxy:8080',
        'request_fulluri' => true,
    ),
);
$cxContext = stream_context_create($aContext);

$sFile = file_get_contents("http://www.google.com", False, $cxContext);

echo $sFile;
?>


답변

PHP 설정이 URL에서 fopen을 허용하는지 여부에 따라 문자열의 get 인수로 URL을 간단히 열 수도 있습니다 (예 : http://example.com?variable=value )

편집 : 난 당신이 변수 여부를 전달 찾고 있는지 확실하지 않다 질문을 다시 읽기 – 당신이하지 단순히 containg는 fopen 요청을 보낼 수 있다면 http://example.com/filename.xml을 – 주시기 바랍니다 변수 = 값 부분을 무시하려면


답변

나는 이것을 위해 fsockopen open을 사용하는 것을 좋아합니다.


답변

반면에 다른 서버의 REST API를 사용하는 것은 PHP에서 매우 인기가 있습니다. 일부 HTTP 요청을 다른 서버로 리디렉션하는 방법을 찾고 있다고 가정합니다 (예 : xml 파일 가져 오기). 다음은 PHP 패키지입니다.

https://github.com/romanpitak/PHP-REST-Client

따라서 xml 파일을 얻는 방법은 다음과 같습니다.

$client = new Client('http://example.com');
$request = $client->newRequest('/filename.xml');
$response = $request->getResponse();
echo $response->getParsedResponse();