curlが有効か無効かを確認する方法


83

重複の可能性:
phpで関数を書く

私は次のコードを使用しています

echo 'Curl: ', function_exists('curl_version') ? 'Enabled' : 'Disabled';

これにより、有効または無効にできます

でも関数として関数名は _iscurl

それから私はそれを私のウェブサイトコードのどこにでも続くように呼ぶことができます

if (_iscurl()){
  echo "this is enabled"; // will do an action
}else{
  echo "this is disabled"; // will do another action
}

前の質問とほぼ同じで、allow_url_fopenが有効になっているかどうかを確認します


7
関数function_exists('curl_version') として使ってみません_iscurl()か?
Anirudh Ramanathan 2012

1
の書き方のマニュアルを参照し、functionそこにワンライナーを詰め、echoと交換しreturn、三元を切り取ります。
マリオ

回答:


134

関数から既存のチェックを返すだけです。

function _isCurl(){
    return function_exists('curl_version');
}

4
これは機能し、受け入れられますが、以下の回答は、私がハックが少なく、コードを読んでいる他の誰かにとってより明確であると考えるものです。これを読んだら、curlのバージョンを見つけることができるかどうかを特に確認していて、curlがロードされているかどうかを確認していないと思うかもしれません。 extension_loaded('curl')はるかに直接的です。
deweydb 2017

62
<?php

// Script to test if the CURL extension is installed on this server

// Define function to test
function _is_curl_installed() {
    if  (in_array  ('curl', get_loaded_extensions())) {
        return true;
    }
    else {
        return false;
    }
}

// Ouput text to user based on test
if (_is_curl_installed()) {
  echo "cURL is <span style=\"color:blue\">installed</span> on this server";
} else {
  echo "cURL is NOT <span style=\"color:red\">installed</span> on this server";
}
?>

または単純なもの-

<?
phpinfo();
?>

カールを検索するだけ

ソース-http://www.mattsbits.co.uk/item-164.html


47
var_dump(extension_loaded('curl'));

12
ファイルを作成せずにコマンドラインをすばやく確認したい場合:echo "<?php var_dump(extension_loaded('curl')); ?>" | php
The Unknown Dev 2016

1
または:php -i | grep curlまたはphp -r 'var_dump(extension_loaded("curl"));'^^
hakre 2017年

これをphpinfoファイルの最初の行に入れてください: `<?php var_dump(extension_loaded( 'curl'));?>`
sjas 2017

8

これらのコードをphpファイルに入れることで確認できます。

<?php
if(in_array  ('curl', get_loaded_extensions())) {
    echo "CURL is available on your web server";
}
else{
    echo "CURL is not available on your web server";
}

または

var_dump(extension_loaded('curl'));

8

お役に立てれば。

<?php
    function _iscurl() {
        return function_exists('curl_version');
    }
?>

11
function_existsそれ自体がtrueまたはを返しますfalse。戻り値を返すだけです。この1つのライナーには、4行のコードを追加する必要はありません。また、あなたの関数には終わりがありません}
プラシャーント2012年

1
コードのオーバーヘッドに同意しますが、elseステートメントで中括弧が必要ない場合、関数には1行として終了}があります。しかし、おそらく悪いインデントがあなたにその間違いをさせました。
Sam Vloeberghs 2013

5

いつでも新しいページを作成して使用できますphpinfo()。カールセクションまで下にスクロールして、有効になっているかどうかを確認します。


5

拡張機能がロードされたかどうかを返す、プロジェクト内の汎用の再利用可能な関数を使用することをお勧めします。次の機能を使用して確認できます-

function isExtensionLoaded($extension_name){
    return extension_loaded($extension_name);
}

使用法

echo isExtensionLoaded('curl');
echo isExtensionLoaded('gd');

1
大規模なプロジェクトで作業していて、上記の状態を30〜40回以上チェックしたいとします。次に、手動で30〜40回書き込む必要があります。突然、プロジェクト内の30〜40の場所すべてで条件を検索して配置する前に、何らかの条件を確認する必要があるという要件が発生しました。代わりに、再利用可能な関数がある場合は、その条件を関数内に配置して、コードの検索、置換、または追加のオーバーヘッドを回避できます。
Channaveer Hakari 2017

2
それがリファクタリングツールの目的です。しかし、要点:必要かどうか確信が持てないコードを紹介すると、欠陥があると考えられます。だからあなたが名前を付ける理由は私の意見ではそうしない理由です。
hakre 2017年

いい案。私はすべてのネイティブphp関数をラップし始めました。図書館に集めました。興味のある人はいますか?
rosell.dk 2017年

@ rosell.dk興味があります。ループしてください。ありがとう
Channaveer Hakari 2017

@ rosell.dk LOL!
PARVUS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.