2011-12-21 17 views
0

HTTP POSTデータをWebページに送信する必要があります。私のホストにはいくつかの拡張機能がありません。私はcURLとfopenを試しましたが、どちらもうまくいきませんでした。PHPを使用してデータを送信する方法は何ですか?

データを送信する他の方法は何ですか?

編集:ところで、私は$ _GETデータも送ることができます。だから私はURLを開くことができる限り(例えば、file_get_contents)、それは動作します。

+0

定義しないでください。 –

+1

'<?php phpinfo();'を付けてPHPファイルを作成し、それ以外は作成しないでください。それはあなたが扱っているものとあなたが使うことができる拡張機能を教えてくれるでしょう。 – Xeoncross

+0

これらの2つが機能しない場合、ホストが他のリソースへのアクセスを明示的に無効にしたとします。 'fopen'は標準のPHP関数であり、管理者が手動で無効にする必要があります。彼らは拡張ではありません。 –

答えて

1

非常に強力なチェックアウトPHP stream functions

ただし、ファイル/ストリーム関数とcURL関数が無効になっている場合は、AJAX要求を使用してフロントエンドでそれらを作成します。データが機密でない限り、jQueryis good at this

blog systemはフロントエンドでjQuery JSONPリクエストのみを使用して作成しました。私の負荷をサーバーではなくユーザーに移したかったからです。

0

これが機能する場合があります。コンテキストは本当に必要ではありませんが、カスタムタイムアウトとユーザーエージェントを設定することができます。

/* Set up array with options for the context used by file_get_contents(). */ 
$opts = array(
    'http'=>array(
    'method' => 'GET', 
    'timeout' => 4, 
    'header' => "Accept-language: en\r\n" . 
       "User-Agent: Some UA\r\n" 
) 
); 

/* Create context. */ 
$context = stream_context_create($opts); 

/* Make the request */ 
$response = @file_get_contents('http://example.com/?foo=bar', null, $context); 

if($response === false) { 
    /* Could not make request. */ 
} 

http_build_query()を使用すると、配列からクエリ文字列を構築できます。

関連する問題