2012-11-17 27 views
64

可能重复:
Writing a function in 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 
} 

〜感谢

以下任何地方

几乎相同,我刚才的问题check if allow_url_fopen is enabled or not

+7

为什么不使用'function_exists( 'curl_version')'因为你'_iscurl()'函数? –

+1

参见编写['function'](http://php.net/function)的手册,把你的一行内容放到那里,用'return'替换'echo'并剪下三元组。 – mario

回答

109

只需从function返回您现有的支票。

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

这个工作,并被接受,但下面的答案是我会考虑少hacky,并更清楚读别人的代码。如果我读了这个,我可能会认为你是专门检查是否能找到卷曲版本,而不是查看是否加载了卷曲。 'extension_loaded('curl')'更直接。 – deweydb

4

您可以随时创建一个新页面并使用phpinfo()。向下滚动到卷曲部分,看看它是否启用。

8

希望这会有所帮助。

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

['function_exists'](http://php.net/function_exists)本身返回'true'或'false'。你可以返回它的返回值。不需要额外的4行代码,用于这个*一个班轮*。另外,你的函数没有结束'}'! – Prasanth

+1

同意代码中的开销,但函数确实有一个结束},如果else语句不需要大括号。但是,也许这个糟糕的缩进让你犯了这个错误。 –

46
<?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

37
var_dump(extension_loaded('curl')); 
+6

对于希望在命令行上快速检查,而无需创建文件的任何一个:'回声“<?的PHP的var_dump(extension_loaded(‘卷曲’));>” | php' –

+0

或者:'php -i | ?grep的curl'或'PHP -r '的var_dump(extension_loaded( “卷曲”));''^^ – hakre

+0

只是把这个成的phpinfo文件,进入第一行:'' – sjas

4

它总是更好地去为一个通用的可重复使用的功能在你的项目w hich返回是否加载扩展。您可以使用下面的函数来检查 -

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

使用

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

那么为什么不直接使用extension_loaded? ... –

+0

假设你在一个大项目中工作,并希望检查上述条件超过30到40次。然后,您需要手动写入30到40次,并且突然之间您需要检查一些条件,然后才需要在项目的所有30-40个位置搜索并放置条件。 相反,如果你有可重复使用的功能,你可以把这种状态在函数内部,可避免搜索和替换或增加代码的开销。 –

+1

这就是重构工具的用途。但是在这一点上:介绍你不知道的代码是必要的,我会考虑一个缺陷。所以你的名字是我认为不这样做的理由。 – hakre

1

你可以把这些代码的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"; 
} 

OR

var_dump(extension_loaded('curl'));