Я использую PHP 4.3.9 и пытаюсь POST к URL без формы, используя stream_context_create, как показано ниже:
function do_post_request($url, $postdata) {
$content = "";
foreach($postdata as $key => $value)
$content .= "$key=$value&";
$content = urlencode($content);
$params = array('http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => $content
));
$ctx = stream_context_create($params);
$result = file_get_contents($url, false, $ctx);
var_dump($result);
Этот код почти дословно взят из руководства по php, и я также видел его в нескольких местах здесь на stackoverflow.
Если я сделаю file_get_contents без $ ctx, var_dump ($ results) будет правильно отображать $ url (но без необходимых изменений, конечно, вызовет $ _POST). С $ ctx var_dump ($ result) имеет значение NULL. Так что с $ ctx что-то не так, но я понятия не имею, что. Я неправильно настраиваю свои $ params или что-то в этом роде?
Любое понимание будет оценено. Если есть другой способ передать POST-данные в URL, я бы тоже не стал это слышать. Но я не могу использовать cURL (или что-либо, что требует установки), и я использую более старую версию php, поэтому мой выбор ограничен.
Спасибо
Задача ещё не решена.
Других решений пока нет …