Envoyer une requête POST en PHP
-
Utilisez la méthode sans CURL en utilisant les fonctions
stream_context_create()
etfile_get_contents()
pour envoyer une requête POST en PHP - Utilisez la CURL pour envoyer la requête POST en PHP
- Créer une fonction définie par l’utilisateur qui utilise la CURL pour envoyer la requête POST en PHP
Nous allons introduire une méthode pour envoyer une requête POST en PHP en utilisant la méthode sans CURL avec l’utilisation des fonctions http_build_query()
, stream_context_create()
et file_get_contents()
.
Nous allons vous montrer une méthode pour envoyer la requête POST en PHP en utilisant le CURL. CURL est utilisé pour envoyer la requête HTTP au serveur Web. Le module CURL est généralement pré-installé avec PHP. S’il n’a pas été installé, nous devons l’installer manuellement pour envoyer la requête du serveur en utilisant PHP.
Nous allons vous montrer un exemple pour envoyer la requête POST en PHP en utilisant le CURL en créant une fonction. Cette méthode est très similaire à la deuxième méthode. Il utilise une fonction définie par l’utilisateur pour envoyer la demande. Nous pouvons réutiliser le code fournissant les différentes données de publication et l’URL.
Utilisez la méthode sans CURL en utilisant les fonctions stream_context_create()
et file_get_contents()
pour envoyer une requête POST en PHP
Nous pouvons envoyer la requête POST en PHP en utilisant les fonctions comme http_build_query()
, stream_context_create()
et file_get_contents()
sans utiliser le CURL. Nous pouvons utiliser la fonction http_build_query()
pour créer des paramètres de requête à envoyer dans la requête POST. Nous pouvons créer un tableau pour spécifier les en-têtes http, les méthodes et le contenu. Nous utilisons la fonction stream_context_create()
pour gérer les données streamées. La fonction file_get_contents()
lit le contenu de l’url en chaîne. Nous utilisons les variables globales $_POST
pour lire les données.
Par exemple, créez la fonction http_build_query()
et créez un tableau à l’intérieur de la fonction. Créez respectivement les clés name
et id
et les valeurs Robert
et 1
dans le tableau. Assignez la fonction avec une variable $postdata
. Créez un tableau pour spécifier la méthode HTTP, l’en-tête et le contenu. Définissez les valeurs des clés method
, header
et content
comme POST
, Content-type: application/x-www-form-urlencoded
et la variable $postdata
. Enveloppez ce tableau dans un autre tableau http
. Affectez le tableau à une variable $opts
. Prenez le $opts
comme paramètre de la fonction stream_context_create()
et assignez-le à une variable $context
. Utilisez la fonction file_get_contents()
et appliquez une URL http://localhost/request.php
comme premier paramètre. Utilisez la valeur booléenne false
et la variable $context
comme deuxième et troisième paramètres. Affectez la fonction à une variable $result
et imprimez-la. Créez un fichier PHP request.php
et faites écho aux clés name
et id
à l’aide de la variable $_POST
.
Dans l’exemple ci-dessous, name
et id
sont les données à publier en utilisant la méthode POST. Le fichier request.php
lit les paramètres de la requête à l’aide de la variable $_POST
.
Exemple de code:
# 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'];
?>
Production:
Name: Robert
ID: 1
Utilisez la CURL pour envoyer la requête POST en PHP
CURL signifie URL du client. Nous pouvons utiliser le CURL pour envoyer la requête POST via le script PHP. La version PHP a besoin du module curl pour exécuter les différentes fonctions curl. Dans cette méthode, nous utilisons la fonction http_build_query()
comme dans la méthode ci-dessus pour créer les paramètres de la requête. Nous pouvons utiliser la fonction curl_init()
pour initialiser la connexion CURL dans le script. Nous utilisons les fonctions curl_setopt()
avec quelques options comme CURLOPT_URL
, CURLOPT_POST
et CURLOPT_POSTFIELDS
. Ces options définissent l’URL, demandent une requête HTTP POST et POST les données, respectivement. On peut utiliser la fonction curl_setopt()
pour renvoyer le contenu de l’URL et utiliser la fonction curl_exec()
pour exécuter la requête POST.
Par exemple, créez les clés name
et id
et les valeurs Wayne
et 2
dans un tableau $fields
. Utilisez le tableau comme paramètre dans la fonction http_build_query()
et assignez à la fonction une variable $postdata
. Ouvrez une connexion CURL à l’aide de la fonction curl_init()
et affectez-la à une variable $ch
. Ecrivez trois fonctions curl_setopt()
et utilisez la variable $ch
comme premier paramètre dans les trois fonctions. Comme deuxième paramètre dans les fonctions, écrivez les options CURLOPT_URL
, CURLOPT_POST
et CURLOPT_POSTFIELDS
respectivement dans la première, la deuxième et la troisième fonctions. Définissez le troisième paramètre comme http://localhost/request.php
, true
et $postdata
respectivement dans les trois fonctions. Appelez une fonction curl_setopt()
et utilisez la variable $ch
comme premier paramètre, l’option CURLOPT_RETURNTRANSFER
comme deuxième paramètre et la valeur booléenne true
comme troisième paramètre. Appelez la fonction curl_exec($ch)
à partir de la variable $result
et imprimez le $result
. Utilisez le même fichier request.php
de la première méthode.
Exemple de code:
#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;
?>
Production:
Name: Wayne
ID: 2
Créer une fonction définie par l’utilisateur qui utilise la CURL pour envoyer la requête POST en PHP
Nous pouvons créer une méthode pour prendre les entrées URL et les données POST pour envoyer la requête POST. Cette méthode utilise également la CURL comme deuxième méthode. Il utilise toutes les fonctions curl comme auparavant. Cette méthode vise à réutiliser le code pour plusieurs URL et données.
Par exemple, créez une fonction httpPost()
et prenez les variables $url
et $data
comme arguments. Ouvrez la connexion curl avec la fonction curl_init()
et prenez la variable $url
comme paramètre. Utilisez les trois fonctions curl_setopt()
comme dans la deuxième méthode. Utilisez la méthode curl_exec()
pour exécuter les données POST. Créez un tableau $data
et créez les clés name
et id
et les valeurs Scott
et 3
. Appelez la méthode httpPost()
avec le http://localhost/request.php
comme URL et le tableau $data
comme données. Cette méthode utilise également le fichier request.php
comme les deux méthodes ci-dessus.
Exemple de code:
#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);
?>
Production:
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