如何检查是否启用了卷曲


81

可能重复:
在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,包你一班轮进入那里,更换echoreturn切三元出来。
马里奥

Answers:


133

只需从函数返回您现有的支票即可。

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

4
这有效,并且被接受,但是以下答案是我认为不那么hacky的,对阅读代码的其他人来说更清楚。如果我读过这篇文章,我可能会认为您正在专门检查是否可以找到curl版本,而不是查看是否加载了curl。 extension_loaded('curl')更直接。
deweydb

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


46
var_dump(extension_loaded('curl'));

11
对于任何想要快速在命令行上检查而不创建文件的人:echo "<?php var_dump(extension_loaded('curl')); ?>" | php
Unknown Dev

1
或:php -i | grep curlphp -r 'var_dump(extension_loaded("curl"));'^^
hakre

只需将其放入phpinfo文件的第一行即可:`<?php var_dump(extension_loaded('curl'));?>`
sjas

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本身返回truefalse。您可以返回它的返回值。对于此衬纸,不需要额外的4行代码。另外,您的功能还没有结束}
Prasanth 2012年

1
如果代码不需要其他花括号,则该函数在代码开销上是一致的,但是该函数的末尾确实有一行}。但是也许糟糕的缩进让你犯了这个错误。
Sam Vloeberghs 2013年


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's

2
这就是重构工具的用途。但要点是:引入不确定的代码,我肯定会认为它是有缺陷的。因此,我认为您命名的原因是不这样​​做的原因。
哈克尔(Hakre)'17

很好的主意。我已经开始包装所有本地php函数。我将它们收集在图书馆中。任何人感兴趣吗?
rosell.dk

@ rosell.dk我有兴趣请圈出我。谢谢
Channaveer Hakari

@ rosell.dk哈哈!
parvus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.