13.2 Eine URL mit der POST-Methode abrufen

Problem

Sie möchten eine URL mit der POST-Methode auslesen und nicht mit der standardmäßigen GET-Methode. Beispielsweise möchten Sie ein HTML-Formular abschicken.

Lösung

Verwenden Sie file_get_contents() mit einem Stream-Kontext:

$body = http_build_query(array("affe" => "onkel", "nashorn" => "tante"));
$contextOptions = array(
    "http" =>
        array (
            "method" => "POST",
            "header" =>
                "Content-type: application/x-www-form-urlencoded\r\n"
                . "Content-length: " . strlen($body) . "\r\n",
            "content" => $body
            )
);
$context = stream_context_create($contextOptions);
$page = file_get_contents("http://www.example.com/submit.php", false, $context);

Etwas kürzer: Verwenden Sie die cURL-Erweiterung und setzen Sie die Option CURLOPT_POST ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.