it-swarm.com.de

Schwerwiegender Fehler: Rufen Sie in Zeile 9 die undefinierte Funktion curl_init () auf

<?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);
?>

Ich spiele mit der Imgur-API, aber es scheint nicht zu funktionieren. PHP.net sagt, dass curl_init() in PHP5 ist, aber mein Host sagt, dass dies nicht der Fall ist. Wie kann ich das schaffen?

62
Thew

curl ist eine Erweiterung, die installiert werden muss und nichts mit der PHP version zu tun hat.

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

38
fire

In alten Versionen von Debian und Ubuntu haben Sie dies gelöst, indem Sie die Curl-Erweiterung für PHP installiert und den Webserver neu gestartet haben. Angenommen, der Webserver ist Apache 2:

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

In neueren Versionen wurde der Paketname wie folgt geändert:

Sudo apt install php-curl

Möglicherweise müssen Sie mehr installieren:

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

Sie haben noch nicht genug Ruf, um einen Kommentar abzugeben. Mit Ubuntu und einem einfachen:

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

Hat bei mir NICHT funktioniert.

Aus irgendeinem Grund curl.so wurde an einem Ort installiert, der standardmäßig nicht abgeholt wurde. Ich habe das extension_dir in meiner php.ini und kopiert über die curl.so zu meinem extension_dir

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

Hoffe das hilft jemandem, passe deine Pfadpositionen entsprechend an.

14
Michael Irey

Für Ubunt

Installieren Sie die Curl-Erweiterung für PHP & starten Sie den Apache-Server neu.

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

Für Windows

Das Problem tritt auf, weil die lib_curl.dll nicht in PHP enthalten ist. lade auch folgende Erweiterung, wenn es nicht funktioniert, also diese Erweiterung in php.ini oder Kommentar entfernen, falls bereits vorhanden in php.ini Datei dann Kommentar entfernen.

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

Starten Sie nun den Apache-Server neu. Wenn die Fehlermeldung "php_curl.dll kann nicht geladen werden" angezeigt wird, kopieren Sie die Bibliotheken SSLEAY32.PHP, libEAY32.dll (OpenSSL) in den Ordner System32.

13
Vinay

für PHP 7.0 auf Ubuntu verwenden

Sudo apt-get install php7.0-curl

Und schlussendlich,

Sudo service Apache2 restart 

oder

Sudo service nginx restart
3
Mazino S Ukah

Dies wurde unter Ubuntu 16.04 unter PHP 7.1.14 ausgeführt. Um dies zu beheben, fügen Sie dies zunächst in ein Skript ein und führen Sie es aus. Wenn curl installiert und aktiviert ist, wird true zurückgegeben, andernfalls false.

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

Wenn es false zurückgibt, führen Sie aus

Sudo apt-get install php7.1-curl

Und schlussendlich,

Sudo service Apache2 restart

Nach dem Neustart gibt das Skript true zurück und hoffentlich sollte Ihr Fehler behoben sein.

2
The Sammie

Es gibt eine Lösung mit allen notwendigen Details für Windows 7 x64:

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

Es ist auf Französisch, aber Sie können alles verstehen! Ich habe das gleiche Problem gelöst und spreche kein Französisch. :-)

Viele Antworten vergessen zu erwähnen, dass Sie eine neue Version der Datei php_curl.dll von diesem Speicherort hinzufügen müssen: http://www.anindya.com/php-5-4-3-and- PHP-5-3-13-x64-64-Bit-für-Windows/

Ich habe eine neue Version von php_curl.dll aus dem Archiv php_curl-5.4.3-VC9-x64.Zip zu den Ordnern hinzugefügt: C:\wamp\bin\php\php5.4.3\ext und C:\Windows\System32 und alles war in Ordnung!

2
Nemanja Vujacic

mach das

Sudo apt-get install php-curl

und Server neu starten

Sudo service Apache2 restart
2
jafar690