web-dev-qa-db-fra.com

Erreur fatale: appel de la fonction indéfinie curl_init () dans ... à la ligne 9

<?php
$filename = "xx.gif";
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));

// $data is file data
$pvars   = array('image' => base64_encode($data), 'key' => IMGUR_API_KEY);
$timeout = 30;
$curl    = curl_init();

curl_setopt($curl, CURLOPT_URL, 'http://api.imgur.com/2/upload.xml');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);

$xml = curl_exec($curl);

curl_close ($curl);

var_dump($xml);
?>

Je joue avec l'API Imgur, mais cela ne semble pas fonctionner. PHP.net dit que curl_init() est en PHP5, mais mon hôte dit que ce n'est pas le cas. Comment puis-je faire ce travail?

62
Thew

curl est une extension qui doit être installée, elle n’a rien à voir avec la version PHP.

http://www.php.net/manual/en/curl.setup.php

38
fire

Sur les anciennes versions de Debian et Ubuntu, vous avez résolu ce problème en installant l'extension Curl pour PHP et en redémarrant le serveur Web. En supposant que le serveur Web est Apache 2:

Sudo apt-get install php5-curl
Sudo service Apache2 restart

Sur les versions plus récentes, le nom du package tel que modifié:

Sudo apt install php-curl

Il est possible que vous deviez en installer plus:

Sudo apt-get install curl libcurl3 libcurl3-dev;
122
Mark Stosberg

Vous n'avez pas encore assez de réputation pour commenter. Utiliser Ubuntu et un simple:

Sudo apt-get install php5-curl
Sudo /etc/init.d/Apache2 restart

N'a PAS fonctionné pour moi.

Pour certaines raisons curl.so a été installé dans un emplacement non récupéré par défaut. J'ai vérifié le extension_dir dans mon php.ini et copié sur le curl.so à mon extension_dir

cp /usr/lib/php5/20090626/curl.so  /usr/local/lib/php/extensions/no-debug-non-zts-20090626

En espérant que cela aide quelqu'un, ajustez l'emplacement de votre chemin en conséquence.

14
Michael Irey

Pour Ubunt

Installez l'extension Curl pour PHP & redémarrez le serveur Apache.

Sudo apt-get install php5-curl
Sudo service Apache2 restart

pour Windows

Le problème provient de l'inclusion de lib_curl.dll dans PHP. charge également l'extension suivante si elle ne fonctionne pas, donc l'extension dans php.ini ou supprimer un commentaire s'il existe déjà dans php.ini fichier puis supprimez le commentaire.

extension=php_bz2.dll
extension=php_curl.dll
extension=php_dba.dll

Maintenant, redémarrez le serveur Apache. Si vous obtenez une erreur "Impossible de charger php_curl.dll", copiez les bibliothèques SSLEAY32.PHP, libEAY32.dll (OpenSSL) dans le dossier System32.

13
Vinay

pour php 7.0 sur l'utilisation d'ubuntu

Sudo apt-get install php7.0-curl

Et enfin,

Sudo service Apache2 restart 

ou

Sudo service nginx restart
3
Mazino S Ukah

Expérimenté avec Ubuntu 16.04, en cours d’exécution PHP 7.1.14. Pour résoudre ce problème, commencez par le mettre dans un script, puis exécutez-le. Il retournera la valeur true si curl est installé et activé, sinon il retournera la valeur false.

<?php
    var_dump(extension_loaded('curl'));
?>

S'il retourne faux, lancez

Sudo apt-get install php7.1-curl

Et enfin,

Sudo service Apache2 restart

Après le redémarrage, le script retournera true et espérons que votre erreur sera résolue.

2
The Sammie

Il existe une solution avec tous les détails nécessaires pour Windows 7 x64:

http://www.youtube.com/watch?v=7qNTi1sEfE8

C'est en français, mais vous pouvez tout comprendre! J'ai résolu le même problème, même ne parle pas français. :-)

Beaucoup de réponses oublient de mentionner que vous devez ajouter une nouvelle version du fichier php_curl.dll à partir de cet emplacement: http://www.anindya.com/php-5-4-3-and- php-5-3-13-x64-64-bit-for-windows/

J'ai ajouté une nouvelle version de php_curl.dll à partir de l'archive php_curl-5.4.3-VC9-x64.Zip dans les dossiers: C:\wamp\bin\php\php5.4.3\ext et C:\Windows\System32 et tout allait bien!

2
Nemanja Vujacic

fais ça

Sudo apt-get install php-curl

et redémarrer le serveur

Sudo service Apache2 restart
2
jafar690