POST-Anfrage in PHP senden
-
Verwendung der CURL-losen Methode unter Verwendung der Funktionen
stream_context_create()
undfile_get_contents()
zum Senden einer POST-Anfrage in PHP - Verwendung von CURL zum Senden der POST-Anfrage in PHP
- Erstellen einer benutzerdefinierten Funktion, die CURL zum Senden der POST-Anfrage in PHP verwendet
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 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