2012-11-17 54 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'));