2012-01-11 6 views
0

코드의 일부 지점에서 내 서버에 정보를 보내야하는 WordPress 용 플러그인을 만들려고합니다. 플러그인은 여러 가지 다른 구성과 기능으로 여러 서버에 설치됩니다.PHP와 원격 URL 호출

내가하고 싶은 것은 그 스크립트가 모든 종류의 PHP 구성 및 서버 기능에서 내 서버의 특정 URL을 호출하기 위해 내 서버와 통신 할 수 있도록하는 것입니다. 그래서 질문이 다른 방법은 거기에있다 내가하면 fopen이 경우 시도 할 수 및 특정 호스트에서 작동하지 컬

ini_set("allow_url_fopen", 1); 

$d = array('key1' => 'val1', 'key2' => 'val2'); 
$data = urlencode(serialize($d)); 

$f = fopen('http://www.my-site.ext/getdata/' . $data . '/', 'r'); 
if(!$f) 
{ 
    $ch = curl_init(); 

    if($ch != false) 
    { 
     curl_setopt($ch, CURLOPT_URL, 'http://www.my-site.ext/getdata/' . $data . '/'); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $contents = curl_exec ($ch); 
     curl_close ($ch); 
    } 
    else 
    { 
     // IS THERE ANY OTHER METHOD TO TEST IN CASE 
     // THE FOPEN AND THE CURL NOT WORK ? 
    } 
} 
else 
{ 
    fclose($f); 
} 

: 여기

내 코드?

답변

1

file_get_contents()은 여전히 ​​요청을 보내기 때문에 file_get_contents()을 사용할 수 있습니다. 그러나 fopenfsockopen은 여전히 ​​활성화하려면 allow_url_fopen이 필요합니다.

서버에서 안전 모드를 사용하는 경우 은 네트워크 트랜잭션을 수행 할 수 없습니다. getcontents를 사용하는 Peradventure는 무료 리소스 호출 후 unset()을 사용하므로 성능을 저해하지는 않습니다.

1

fsockopen을 통해 수동으로 요청하고 기본 HTTP 1.0 클라이언트를 작성하여 fopen url 래퍼를 사용할 수없는 경우 fsockopen도 비활성화되어 있음을 알 수 있습니다.