Activer l'extension curl de PHP sous Windows

Page 1 / 1

Si vous avez déjà essayé d'utiliser les fonctions "curl" de PHP sous Windows, vous avez dû remarquer que PHP vous renvoyait une erreur vous précisant que la fonction "curl_init()" (ou une autre fonction curl) n'était pas définie.
La raison est simple : cette extension n'est pas activée par défaut dans PHP.

  1. Activer l'extension "curl" dans le fichier php.ini
  2. Ajouter le chemin du dossier de PHP dans la variable d'environnement "PATH" de Windows.
  3. Relancer le service apache pour prendre en compte les changements
  4. Tester le fonctionnement de curl grâce à notre exemple

1. Activer l'extension "curl" dans le fichier php.ini

Tout d'abord, pour activer l'extension "curl" de PHP, vous avez 2 possibilités :
- Soit vous possédez WAMP :
Dans ce cas, vous pouvez l'activer en cliquant sur l'icône de WAMP (avec le clic gauche) puis en allant dans "PHP->PHP extensions". Puis cliquez sur "php_curl" pour qu'un "v" apparaisse à coté.
- Soit vous avez installé PHP depuis le site officiel de son auteur,
Dans ce cas, vous devrez modifier le fichier "php.ini" qui se trouve à la racine du dossier de PHP.
Dans ce fichier, décommentez la ligne suivante en enlevant le ";" s'il est présent (ou ajoutez là si elle ne s'y trouve pas) :

Apache

;extension=php_curl.dll

2. Ajouter le chemin du dossier de PHP dans la variable d'environnement "PATH" de Windows.

Comme indiqué sur le site officiel de PHP, le module curl a besoin des DLLs "libeay32.dll" et "ssleay32.dll" pour fonctionner.

Pour que PHP puisse les trouver et donc les utiliser, vous avez 2 solutions :
- Soit les copier dans le dossier : C:\Windows\System32
- Soit ajouter le chemin du dossier de PHP dans la variable d'environnement "PATH" de Windows. (Recommandé)

Pour l'ajouter, modifier la variable en ajoutant le chemin du dossier de PHP à la fin de cette variable, en le séparant par un ;

Note : Si vous ne savez pas comment modifier une variable d'environnement, jetez un coup d'oeil à notre tutoriel : Modifier et / ou afficher les variables d'environnement de Windows

3. Relancer le service apache pour prendre en compte les changements

Pour relancer le service d'Apache qui est le serveur Web utilisant PHP en module :
- lancez le programme "services.msc
- sélectionnez le service "Apache" (nommé "wampapache" avec WAMP)
- puis cliquez sur redémarrer (dans la colonne de droite)

Pour plus d'informations sur la gestion de services sous Windows, jetez un coup d'oeil à notre tutoriel : Gérer les services de Windows

4. Tester le fonctionnement de curl grâce à notre exemple

Voici un script PHP qui devra vous afficher la page de Wikipedia concernant curl.

PHP

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Exemple d'utilisation de curl</title>
</head>

<body>
<?php
// Url de la page dont vous voulez récupérer le contenu (plus précisément : le code source)
$url = 'http://fr.wikipedia.org/wiki/CURL';
// Initialise une session cURL
$ch = curl_init();

// Défini quelques options
// - Indique l'url auquel curl devra accéder
curl_setopt($ch, CURLOPT_URL, $url);
// - Retourne le contenu par la fonction curl_exec au lieu d'afficher directement le contenu récupéré
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// - Défini un user-agent à envoyer au serveur. Vous pouvez par exemple envoyer un user-agent d'un téléphone Android, d'un iPhone, ... pour tenter de récupérer le contenu d'une version mobile d'un site web
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0');
// - Exécute la session cURL fournie et stocke le contenu récupéré dans la variable $resultat (grâce à l'option CURLOPT_RETURNTRANSFER)
$resultat = curl_exec ($ch);
// - Ferme une session cURL et donc la connexion au serveur distant
curl_close($ch);

// Affiche le contenu récupérer par curl
echo $resultat;
?>
</body>
</html>