私はこの特定の機能でエラーがどこにあるのか把握しようとしています。 ポストされた機能とよく似ていますが、いくつかのマイナーな調整があります。とにかく、変数$ PAYMENTPAGE-> ipa_urlに特定のURLがあります。私はこれに投稿しようとしているだけで、接続が正常に行われているかどうかを確認するための戻りデータをdie( 'test')にします。 代わりに私は空白のページを取得し続けます。ストリームコンテキストでphp fopenを使用してポストからデータを受け取ることに問題がある
私はそれをカール拡張機能を使用して動作させることができましたが、任意の拡張子を持つボックスのままで動作するように単純にストリームを使用する方が好きです。私は、私が修正した例外エラーを受け取っていたので、接続が行われていることは分かっていますが、なぜ情報が投稿から返されていないのか分かりません。
function doPostRequest($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$get_stream = true;
try{
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem creating stream from $url, \n\t".implode("\n\t", error_get_last()));
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, \n\t".implode("\n\t", error_get_last()));
}
$get_stream = false;
} catch(Exception $e){
mcFatal("Error(".date('Y-m-d h:i:s').'):'.$e->getMessage()."\n");
}
if($get_stream){
return false;
}
return $response;
}
'stream_get_contents'が警告を投げているのだろうかと思います。 '@'を抑制するエラーを取り除き、 'error_reporting'がそれを見るのに十分低い(' display_errors'または 'log_errors'と同様に)であることを確認してください。また、バイナリフラグを持つURLを 'fopen 'するのが期待される動作であるかどうかはわかりません。いずれにしても、 'fopen' +' stream_get_contents'を 'file_get_contents'で置き換えてみてください。 – Fanis