Фатальная ошибка: Звоните в неопределенную функцию curl_init () в … на строке 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);
?>

Я играю с API Imgur, но он не делает, кажется, работает. в PHP.net говорится это curl_init() находится в PHP5, но мой хост говорит, что это не. Как я могу сделать эту работу?

62
задан 4 November 2014 в 00:04

10 ответов

завихрение является расширением, которое должно быть установлено, оно не имеет никакого отношения к версии PHP.

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

38
ответ дан 31 October 2019 в 13:11

На старых версиях Debian и Ubuntu, Вы решили это путем установки Вихревого расширения для PHP и перезапуска веб-сервера. Принятие веб-сервера является Apache 2:

sudo apt-get install php5-curl
sudo service apache2 restart

На более новых версиях, имя пакета, как изменено:

sudo apt install php-curl

возможно, что необходимо будет установить больше:

sudo apt-get install curl libcurl3 libcurl3-dev;
123
ответ дан 31 October 2019 в 13:11

Не имейте достаточной репутации для комментария все же. Используя Ubuntu и простое:

sudo apt-get install php5-curl
sudo /etc/init.d/apache2 restart

НЕ работал на меня.

По некоторым причинам curl.so был установлен в месте, не взятом по умолчанию. Я проверил extension_dir в свой php.ini и скопировал по curl.so к моему extension_dir

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

Hope, это помогает кому-то, скорректируйте свои местоположения пути соответственно.

14
ответ дан 31 October 2019 в 13:11

Для расширения Завихрения Установки Ubuntu

для PHP & перезапустите апачский сервер.

sudo apt-get install php5-curl
sudo service apache2 restart

Для проблемы Windows

возникает из-за не включая lib_curl.dll к PHP., также загружаются после расширения, не работая, таким образом, те, которые расширение в php.ini или удаляет комментарий, если уже существуют в php.ini файл затем, удаляют комментарий.

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

Теперь апачский сервер перезапуска. Если Вы получаете ошибку, "Не могущую Загрузить php_curl.dll", копируют SSLEAY32. PHP, libEAY32.dll (OpenSSL) Библиотеки к папке System32.

13
ответ дан 31 October 2019 в 13:11

для php 7.0 на использовании человечности

sudo apt-get install php7.0-curl

И наконец,

sudo service apache2 restart 

или

sudo service nginx restart
4
ответ дан 31 October 2019 в 13:11

Существует решение со всеми необходимыми деталями для Windows 7 x64:

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

Это находится на французском языке, но можно понять все! Я решил ту же проблему, даже не говорите на французском языке. :-)

Много ответов забывают упоминать, что необходимо добавить новую версию файла php_curl.dll от этого местоположения: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

я добавил новую версию php_curl.dll из архива php_curl-5.4.3-VC9-x64.zip к папкам: C:\wamp\bin\php\php5.4.3\ext и C:\Windows\System32 и все были прекрасны!

2
ответ дан 31 October 2019 в 13:11

сделайте это

sudo apt-get install php-curl

и перезапустите сервер

sudo service apache2 restart
2
ответ дан 31 October 2019 в 13:11

Опытный это на человечности 16.04, выполняющей PHP 7.1.14. Для разрешения сначала поместите это в сценарий и выполнитесь. Это возвратит true, если завихрение будет установлено и включено, иначе, то это возвратит false.

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

, Если это возвращает false, выполнение

sudo apt-get install php7.1-curl

И наконец,

sudo service apache2 restart

После того, как перезапуск, сценарий возвратит true и надо надеяться, Ваша ошибка должна быть разрешена.

2
ответ дан 31 October 2019 в 13:11

Это от официального сайта. php.net

После установки PHP.

Windows

Move к папке Windows\system32: libssh2.dll, php_curl.dll, ssleay32.dll, libeay32.dll

Перемещение Linux

к папке Apache24\bin libssh2.dll

Затем некомментарий extension=php_curl.dll в php.ini

-2
ответ дан 31 October 2019 в 13:11
$ch = curl_init('http://api.imgur.com/2/upload.xml'); //initialising our url

curl_setopt($ch, CURLOPT_MUTE, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);  //used for https headers 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  //used for https headers

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($pvars));  
//the value we post

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //waiting for reponse, default value in php is zero ie, curls normally do not wait for a response

curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0'); 

$output = curl_exec($ch); //the real execution 
curl_close($ch);

echo $output;

Попытка этот код. Я не уверен в этом. Но я использовал его для отправки данных XML в удаленный URL.

-3
ответ дан 31 October 2019 в 13:11

Другие вопросы по тегам:

Похожие вопросы: