POST-Anfrage in PHP senden

Subodh Poudel 22 Juni 2021
  1. Verwendung der CURL-losen Methode unter Verwendung der Funktionen stream_context_create() und file_get_contents() zum Senden einer POST-Anfrage in PHP
  2. Verwendung von CURL zum Senden der POST-Anfrage in PHP
  3. Erstellen einer benutzerdefinierten Funktion, die CURL zum Senden der POST-Anfrage in PHP verwendet
POST-Anfrage in PHP senden

Wir werden eine Methode zum Senden einer POST-Anfrage in PHP unter Verwendung der CURL-freien Methode unter Verwendung der Funktionen http_build_query(), stream_context_create() und file_get_contents() einführen.

Wir zeigen Ihnen eine Methode zum Senden der POST-Anfrage in PHP mit der CURL. CURL wird verwendet, um die HTTP-Anforderung an den Webserver zu senden. Das CURL-Modul ist in der Regel mit PHP vorinstalliert. Wenn es nicht installiert wurde, sollten wir es manuell installieren, um die Serveranforderung mit PHP zu senden.

Wir zeigen Ihnen ein Beispiel zum Senden der POST-Anforderung in PHP mithilfe der CURL durch Erstellen einer Funktion. Diese Methode ist der zweiten Methode sehr ähnlich. Es verwendet eine benutzerdefinierte Funktion, um die Anforderung zu senden. Wir können den Code, der die verschiedenen Postdaten und die URL liefert, wiederverwenden.

Verwendung der CURL-losen Methode unter Verwendung der Funktionen stream_context_create() und file_get_contents() zum Senden einer POST-Anfrage in PHP

Wir können die POST-Anfrage in PHP senden, indem wir die Funktionen http_build_query(), stream_context_create() und file_get_contents() verwenden, ohne die CURL zu verwenden. Mit der Funktion http_build_query() können wir Abfrageparameter erstellen, die in der POST-Anforderung gesendet werden sollen. Wir können ein Array erstellen, um die http-Header, Methoden und den Inhalt anzugeben. Wir verwenden die Funktion stream_context_create(), um die gestreamten Daten zu verarbeiten. Die Funktion file_get_contents() liest den Inhalt der URL in eine Zeichenkette. Wir verwenden die globalen Variablen $_POST, um die Daten zu lesen.

Erstellen Sie beispielsweise die Funktion http_build_query() und erstellen Sie ein Array innerhalb der Funktion. Erstellen Sie die Schlüssel name und id sowie die Werte Robert und 1 im Array. Weisen Sie der Funktion eine Variable $postdata zu. Erstellen Sie ein Array, um die HTTP-Methode, den Header und den Inhalt anzugeben. Stellen Sie die Werte für die Schlüssel method, header und content als POST, Content-type: application/x-www-form-urlencoded und die Variable $postdata ein. Wickeln Sie dieses Array in ein anderes Array http. Weisen Sie das Array einer Variablen $opts zu. Nehmen Sie die $opts als Parameter für die Funktion stream_context_create() und weisen Sie sie einer Variablen $context zu. Verwenden Sie die Funktion file_get_contents() und wenden Sie als ersten Parameter eine URL http://localhost/request.php an. Verwenden Sie den booleschen Wert false und die Variable $context als zweiten und dritten Parameter. Weisen Sie die Funktion einer Variablen $result zu und drucken Sie sie aus. Erstellen Sie eine PHP-Datei request.php und geben Sie die Schlüssel name und id mit der Variablen $_POST wieder.

Im folgenden Beispiel sind name und id die Daten, die mit der POST-Methode gebucht werden sollen. Die Datei request.php liest die Abfrageparameter mit der Variablen $_POST.

Beispielcode:

# php 7.*
<?php
$postdata = http_build_query(
    array(
        'name' => 'Robert',
        'id' => '1'
    )
);
$opts = array('http' =>
    array(
        'method' => 'POST',
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);
$context = stream_context_create($opts);
$result = file_get_contents('http://localhost/request.php', false, $context);
echo $result;
?>
# php 7.*
<?php
echo "Name: ". $_POST['name']. "<br>";
echo "ID: ". $_POST['id'];
?>

Ausgabe:

Name: Robert
ID: 1

Verwendung von CURL zum Senden der POST-Anfrage in PHP

CURL steht für Client URL. Wir können die CURL verwenden, um die POST-Anfrage über das PHP-Skript zu senden. Die PHP-Version benötigt das Curl-Modul, um die verschiedenen Curl-Funktionen auszuführen. In dieser Methode verwenden wir die Funktion http_build_query() wie in der obigen Methode, um die Abfrageparameter zu erstellen. Mit der Funktion curl_init() können wir die CURL-Verbindung im Skript initialisieren. Wir verwenden die Funktionen curl_setopt() mit einigen Optionen wie CURLOPT_URL, CURLOPT_POST und CURLOPT_POSTFIELDS. Diese Optionen legen die URL fest, fordern eine HTTP-POST-Anforderung an und POST die Daten. Wir können die Funktion curl_setopt() verwenden, um den Inhalt der URL zurückzugeben, und die Funktion curl_exec() verwenden, um die POST-Anforderung auszuführen.

Erstellen Sie beispielsweise die Schlüssel name und id sowie die Werte Wayne und 2 in einem Array $fields. Verwenden Sie das Array als Parameter in der Funktion http_build_query() und weisen Sie der Funktion eine Variable $postdata zu. Öffnen Sie eine CURL-Verbindung mit der Funktion curl_init() und weisen Sie sie einer Variablen $ch zu. Schreiben Sie drei Funktionen curl_setopt() und verwenden Sie die Variable $ch als ersten Parameter in allen drei Funktionen. Schreiben Sie als zweiten Parameter in den Funktionen die Optionen CURLOPT_URL, CURLOPT_POST und CURLOPT_POSTFIELDS in die erste, zweite und dritte Funktion. Stellen Sie den dritten Parameter in den drei Funktionen auf http://localhost/request.php, true und $postdata ein. Rufen Sie eine Funktion curl_setopt() auf und verwenden Sie die Variable $ch als ersten Parameter, die Option CURLOPT_RETURNTRANSFER als zweiten Parameter und den Booleschen Wert true als dritten Parameter. Rufen Sie die Funktion curl_exec($ch) aus der Variablen $result auf und drucken Sie das $result. Verwenden Sie dieselbe Datei request.php der ersten Methode.

Beispielcode:

#php 7.x
<?php
$fields = [
    'name' => 'Wayne',
    'id' => 2,
];
$postdata = http_build_query($fields);
$ch = curl_init()
curl_setopt($ch,CURLOPT_URL, 'http://localhost/request.php');
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo $result;
?>

Ausgabe:

Name: Wayne 
ID: 2

Erstellen einer benutzerdefinierten Funktion, die CURL zum Senden der POST-Anfrage in PHP verwendet

Wir können eine Methode erstellen, um die URL-Eingaben und die POST-Daten zum Senden der POST-Anforderung zu verwenden. Diese Methode verwendet auch die CURL als zweite Methode. Es verwendet alle Curl-Funktionen wie zuvor. Diese Methode zielt darauf ab, den Code für mehrere URLs und Daten wiederzuverwenden.

Erstellen Sie beispielsweise eine Funktion httpPost() und verwenden Sie die Variablen $url und $data als Argumente. Öffnen Sie die Curl-Verbindung mit der Funktion curl_init() und nehmen Sie die Variable $url als Parameter. Verwenden Sie die drei Funktionen curl_setopt() wie bei der zweiten Methode. Verwenden Sie die Methode curl_exec(), um die POST-Daten auszuführen. Erstellen Sie ein Array $data und erstellen Sie die Schlüssel name und id sowie die Werte Scott und 3. Rufen Sie die Methode httpPost() mit der URL http://localhost/request.php und dem Array $data als Daten auf. Diese Methode verwendet auch die Datei request.php als die beiden oben genannten Methoden.

Codebeispiel:

#php 7.x
<?php
function httpPost($url, $data){
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($curl);
    echo $response;
}
$data = [
    'name' => 'Scott',
    'id' => 3
];
httpPost('http://localhost/request.php', $data);
?>

Ausgabe:

Name: Scott 
ID: 3
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn