2012-01-11 8 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()は依然としてget要求を送信するので、file_get_contents()を使用できます。ただし、fopenfsockopenは、まだ有効にするにはallow_url_fopenが必要です。

サーバーでセーフモードが有効になっている場合、はネットワークトランザクションを行うことができません。 getcontentsを使用しているPeradventureは、フリーリソースへの呼び出し後にunset()を使用するので、パフォーマンスを低下させることはありません。

1

リクエストをfsockopen経由で手動で行い、リクエストを実行するための基本HTTP 1.0クライアントを書き込むことができますが、fopen urlラッパーが無効になっていると、fsockopenも無効になっている可能性があります。