<?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?
curl est une extension qui doit être installée, elle n’a rien à voir avec la version PHP.
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;
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.
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.
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
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.
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!
fais ça
Sudo apt-get install php-curl
et redémarrer le serveur
Sudo service Apache2 restart