2009-08-28 11 views

答えて

7

を。 //ストリーム:あなたのホストは、http無効になっていない可能性があります。この(allow_url_fopenを参照)無効にされる可能性があります

$str = file_get_contents('http://www.google.fr'); 

ビットを。時には...


無効になっている場合は、fsockopenを試してみてください。マニュアルに与えられた例で、このは、(引用)と言う

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); 
if (!$fp) { 
    echo "$errstr ($errno)<br />\n"; 
} else { 
    $out = "GET/HTTP/1.1\r\n"; 
    $out .= "Host: www.example.com\r\n"; 
    $out .= "Connection: Close\r\n\r\n"; 
    fwrite($fp, $out); 
    while (!feof($fp)) { 
     echo fgets($fp, 128); 
    } 
    fclose($fp); 
} 

は(あなたがソケットにdiretly作業している、とHTTPプロトコルはそれほど単純ではありません)、使用しているが、それは、非常に低レベルだ考えますそれを使用するライブラリはあなたの人生を楽にします。

たとえば、snoopyをご覧ください。 hereが例です。

+0

POSTはどうですか? – Phil

+2

POSTではfile_get_contentsはOKではありません。 Snoopyを使用して、readmeファイルを調べると、submitメソッドが行うことがあります。 –

+0

優秀な投稿。私は、HTTPに慣れていない人にとってはHTTP/1.0を使うほうが簡単だと提案します。 – Rushyo

2

PHPでプレーンカールサーバースクリプトを作成し、カール対応ホスティングに置くことができます。カールが必要な場合は、カールレスマシンから必要なときにクライアント呼び出しを行い、必要なデータを返します。奇妙な解決策かもしれませんが、一度役立ちました。

2

このスレッドの回答はすべて、有効な回避方法を示していますが、注意すべき点が1つあります。ホストは、何らかの理由でPHPコードを介してWebサーバからのHTTPリクエストを「悪い」ものとみなし、curl拡張機能を無効にした(または有効にしていない)とみなしています。回避策を見つけると、本当に良いチャンスがあり、リクエストが他の方法でブロックされることに気付きます。この特定のホストを使用するように政治的理由がある場合を除き、HTTPリクエストを行う必要がある場合は、アプリ/ページを他の場所に移動することを真剣に検討してください。