Programing

치명적 오류 : 정의되지 않은 함수 curl_init () 호출…

lottogame 2020. 11. 26. 07:44
반응형

치명적 오류 : 정의되지 않은 함수 curl_init () 호출…


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

Imgur API를 사용하고 있지만 작동하지 않는 것 같습니다. PHP.net은 그것이 curl_init()PHP5에 있다고 말하지만 내 호스트는 그렇지 않다고 말합니다. 이 작업을 어떻게 할 수 있습니까?


curl은 설치해야하는 확장 기능이며 PHP 버전과는 관련이 없습니다.

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


이전 버전의 Debian 및 Ubuntu에서는 PHP 용 Curl 확장을 설치하고 웹 서버를 다시 시작하여이 문제를 해결했습니다. 웹 서버가 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;

아직 논평 할만한 평판이 충분하지 않습니다. Ubuntu 및 간단한 사용 :

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

나를 위해 일하지 않았습니다.

어떤 이유로 curl.so기본적으로 선택되지 않은 위치에 설치되었습니다. extension_dir내 php.ini에서 확인하고 curl.soextension_dir

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

이것이 누군가에게 도움이되기를 바라며 그에 따라 경로 위치를 조정하십시오.


Ubuntu의 경우

PHP 용 Curl 확장을 설치하고 아파치 서버를 다시 시작하십시오.

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

Windows의 경우

PHP에 lib_curl.dll을 포함하지 않기 때문에 문제가 발생합니다. 또한 작동하지 않는 경우 다음 확장자를로드하므로 해당 확장자 php.iniphp.ini파일에 이미있는 경우 주석을 제거하거나 주석 을 제거하십시오.

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

이제 아파치 서버를 다시 시작하십시오. "Unable to Load php_curl.dll"오류가 발생하면 SSLEAY32.PHP, libEAY32.dll (OpenSSL) 라이브러리를 System32 폴더에 복사합니다.


우분투 사용의 PHP 7.0

sudo apt-get install php7.0-curl

그리고 마지막으로,

sudo service apache2 restart 

또는

sudo service nginx restart

Windows 7 x64에 필요한 모든 세부 정보가 포함 된 솔루션이 있습니다.

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

It is in French, but you can understand everything! I solved same problem, even don't speak French. :-)

Many answers forget to mention that you need to add new version of php_curl.dll file from this location: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

I added new version of php_curl.dll from archive php_curl-5.4.3-VC9-x64.zip to folders: C:\wamp\bin\php\php5.4.3\ext and C:\Windows\System32 and everything was fine!


do this

sudo apt-get install php-curl

and restart server

sudo service apache2 restart

Experienced this on ubuntu 16.04 running PHP 7.1.14. To resolve,first put this in a script and execute. It will return true if curl is installed and enabled,otherwise, it will return false.

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

If it returns false, run

sudo apt-get install php7.1-curl

And finally,

sudo service apache2 restart

After the restart, the script will return true and hopefully, your error should be resolved.


This is from the official website. php.net

After installation of PHP.

Windows

Move to Windows\system32 folder: libssh2.dll, php_curl.dll, ssleay32.dll, libeay32.dll

Linux

Move to Apache24\bin folder libssh2.dll

Then uncomment extension=php_curl.dll in php.ini


$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;

Try this code. I am not sure about it. But i used it to send xml data to a remote url.

참고URL : https://stackoverflow.com/questions/4396779/fatal-error-call-to-undefined-function-curl-init-in-on-line-9

반응형