2011-10-29 1 views
3

curl_init()が存在する場合にのみ実行したいコードがあります。しかし、コードが内部でこのエラーをスローし、PHP:if(function_exists( 'curl_init')))は動作しますか?

if(function_exists('curl_init')) 
{ 
    $c = curl_init(); 
    curl_setopt($c, CURLOPT_URL, 'http://www.my-site.ext/' . $data . '/'); 
    curl_setopt($c, CURLOPT_HEADER, 0); 
    curl_exec($c); 
    curl_close($c); 
} 

if() trueを返します:

Fatal error: Call to undefined function curl_init() in /var/www/wp-content/plugins/my-plugin-name/inc/myplugin_functions.php on line 15 

どのように適切にcurl_init()が存在するかどうかを確認することができ、私はこのコードでそれの存在をチェックしていますか?

+3

あなたが入力した機能に関係なく、curl_ *の機能に関係なく、cURLが使用可能な場合にこの機能を利用できます。 – salathe

+0

おそらく2行のどちらかのタイプミスです。しかし、 'extension_loaded()'が代わりです。 – mario

+0

私はちょうどコードを変更します。 –

答えて

5

あなたはこのようis_callable()を試すことができます。

if(is_callable('curl_init')){ 
    //Code here 
} 
3

curl_init代わりcurl_execを試してみてください、おそらく

if(function_exists('curl_exec')) 
{ 
    // Code here 
} 
1

を助けるはい、function_existsは、同じ原因のため、過去に私のために働いています.... init setoptやcloseなどのカールに関連するすべてのメソッドと、curlのリソースハンドラの使用がifブロック内にあることを確かめていますか?あなたのコードの多くは、より良い答えに役立つでしょう..

+0

もちろん、声明の真のブロックに入っています –

1

それは問題を引き起こすブロック内にあなたのコードが正しく動作します。

curl_initが存在する場合はTRUEを返し、そうでない場合はFALSEを返します。

関連する問題