Я нахожусь в ситуации, когда я не могу использовать модуль PHP cURL для размещения данных формы.Я нашел большое сообщение в блоге, показывающее, как POST без использования cURL здесь: HTTP POST из PHP, без cURL
Вот моя проблема, хотя.Когда я пытаюсь отправить свой запрос POST, запрос попадает на (другой) сервер, но содержимое (данные POST) не передается.Другой сервер не получает контент.ОДНАКО, если я использую cURL, он работает нормально.Что мне не хватает?Как я могу восстановить запрос PUR cURL HTTP без использования cURL?
Вот код cURL, который работает ($ this-> params - это всего лишь $ _POST, который содержит данные формы):
$ch = curl_init($this->url);
$params = http_build_query($this->params);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0); // DO NOT RETURN HTTP HEADERS
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // RETURN THE CONTENTS OF THE CALL
$result = curl_exec($ch);
curl_close($ch);
return $result;
А вот моя не-CURL-версия, которая не работает:
$postStr = http_build_query($this->params);
$opts = array(
'http'=>array(
'method' => $method,
//'header' => 'Content-type: application/x-www-form-urlencoded',
//'header' => 'content-type: multipart/form-data',
'content-type' => 'application/x-www-form-urlencoded',
'content-encoding' => 'UTF-8',
'content' => $postStr
)
);
$context = stream_context_create($opts);
$result = file_get_contents($this->url, false, $context);
return $result;
Нет ошибок или предупреждений.Просто принимающий сервер не отображается в содержимом.Есть идеи?