<?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バージョンとは関係ありません。
古いバージョンのDebianおよびUbuntuでは、PHP用のCurl拡張機能をインストールし、Webサーバーを再起動することでこれを解決しました。 Webサーバーが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
がデフォルトで選択されていない場所にインストールされました。 php.iniでextension_dir
を確認し、curl.so
をextension_dir
にコピーしました
cp /usr/lib/php5/20090626/curl.so /usr/local/lib/php/extensions/no-debug-non-zts-20090626
これが誰かを助け、それに応じてパスの場所を調整することを願っています。
buntuの場合
PHPのCurl拡張機能をインストールし、Apacheサーバーを再起動します。
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
次に、Apacheサーバーを再起動します。 「Unable to Load php_curl.dll」というエラーが表示された場合は、SSLEAY32.PHP、libEAY32.dll(OpenSSL)ライブラリをSystem32フォルダーにコピーします。
ubuntuでのPHP 7.0の使用
Sudo apt-get install php7.0-curl
そして最後に、
Sudo service Apache2 restart
または
Sudo service nginx restart
PHP 7.1.14を実行しているubuntu 16.04でこれを経験しました。解決するには、まずこれをスクリプトに入れて実行します。 curlがインストールされて有効になっている場合はtrueを返し、そうでない場合はfalseを返します。
<?php
var_dump(extension_loaded('curl'));
?>
Falseを返した場合、実行します
Sudo apt-get install php7.1-curl
そして最後に、
Sudo service Apache2 restart
再起動後、スクリプトはtrueを返し、できればエラーを解決する必要があります。
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-5.4.3-VC9-x64.Zipの新しいバージョンのphp_curl.dllをフォルダーC:\ wamp\bin\php\php5.4.3\extおよびC:\ Windows\System32に追加しましたが、すべて正常でした!
これを行う
Sudo apt-get install php-curl
サーバーを再起動します
Sudo service Apache2 restart