Guide Complet PHP cURL & API
1️⃣ Introduction aux API
• API = pont entre ton site et un autre serveur (ex: Wave)
• Permet d'envoyer et recevoir des données via HTTP
Exemple concret :
Ton site → demande un paiement → Wave → renvoie un lien de paiement
2️⃣ HTTP : méthodes principales
Méthode Utilisation
GET Lire des données
POST Ajouter des données
PUT Modifier des données
DELETE Supprimer des données
3️⃣ $_GET et $_POST
$_GET
• Données dans l’URL, moins sécurisé
$nom = $_GET["nom"];
$_POST
• Données cachées, plus sécurisé
$email = $_POST["email"];
$password = $_POST["password"];
1
4️⃣ JSON
• Format standard pour envoyer/recevoir des données
{
"nom": "Ali",
"age": 20
}
• PHP :
$data = json_decode($json, true);
echo $data["nom"];
$json = json_encode($data);
5️⃣ cURL en PHP
Étapes
1️⃣ Initialiser
$curl = curl_init();
2️⃣ Configurer avec curl_setopt_array
curl_setopt_array($curl, [
CURLOPT_URL => "[Link]
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
"amount" => "1000",
"currency" => "XOF",
"success_url" => "[Link]
"error_url" => "[Link]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer MA_CLE_SECRETE",
"Content-Type: application/json"
2
],
]);
3️⃣ Exécuter et récupérer la réponse
$response = curl_exec($curl);
curl_close($curl);
4️⃣ Lire la réponse et rediriger
$data = json_decode($response, true);
$checkout_url = $data["checkout_url"];
header("Location: $checkout_url");
exit;
6️⃣ Tableau complet des options cURL
Option Valeur Fonction Analogie
CURLOPT_URL string URL du serveur Adresse du destinataire
Garde réponse dans
CURLOPT_RETURNTRANSFER bool Lettre dans ta boîte
$response
Envoyer, lire, modifier,
CURLOPT_CUSTOMREQUEST string Méthode HTTP
supprimer
string/
CURLOPT_POSTFIELDS Données envoyées Contenu du colis
array
Badge/étiquette sur le
CURLOPT_HTTPHEADER array En-têtes HTTP
colis
Suivre panneaux
CURLOPT_FOLLOWLOCATION bool Suivre redirections
directions
Combien de panneaux
CURLOPT_MAXREDIRS int Max redirections
suivre
Combien de temps
CURLOPT_TIMEOUT int Temps d’attente max
attendre la poste
CURLOPT_ENCODING string Compression acceptée Déballer colis compressé
Langue utilisée pour
CURLOPT_HTTP_VERSION int Version HTTP
parler au serveur
Lire enveloppe avant
CURLOPT_HEADER bool Inclure headers
contenu
3
Option Valeur Fonction Analogie
CURLOPT_USERAGENT string Agent HTTP Signaler qui envoie
Vérifier destinataire
CURLOPT_SSL_VERIFYPEER bool Vérifier certificat SSL
authentique
CURLOPT_COOKIE string Envoyer cookies Petits papiers instructions
7️⃣ Résumé rapide
• API = pont entre sites/serveurs
• HTTP = méthodes (GET, POST, PUT, DELETE)
• JSON = format standard pour données
• $_GET/$_POST = récupérer données formulaires
• cURL = envoyer et recevoir requêtes HTTP
• json_encode / json_decode = PHP ↔ JSON
• CURLOPT_* = options pour configurer la requête cURL
8️⃣ Conseils pour progresser
• Commence avec PHP pur + cURL
• Connecte une base de données (MySQL/PostgreSQL)
• Ensuite explore frameworks comme Laravel
• Entraîne-toi avec de petites API de paiement, utilisateur, produit