2012-11-17 17 views
64

Powiel możliwe:
Writing a function in phpjak sprawdzić czy curl jest włączony lub wyłączony

Używam następujący kod

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

może dostać włączona lub wyłączone

ale chciałbym, aby jak funkcja powiedzieć nazwa funkcji jest _iscurl

wtedy mogę nazwać w następujący sposób w każdym miejscu w kodzie strony

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

~ dziękczynienie

prawie takie same jak moje poprzednie pytanie check if allow_url_fopen is enabled or not

+7

Dlaczego nie użyć 'function_exists ('')' curl_version jako '_iscurl()' funkcji? –

+1

Zapoznaj się z podręcznikiem na temat pisania funkcji '' '(http://php.net/function), zapakuj tam swój liniowiec, zamień' echo' na 'return' i odetnij potrójny. – mario

Odpowiedz

109

Wystarczy odesłać dotychczasowy czek z function.

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

To działa i jest akceptowane, ale poniższe odpowiedzi są tym, co uważam za mniej hackowskie i bardziej zrozumiałe dla kogoś czytającego kod. Jeśli to przeczytam, mogę pomyśleć, że specjalnie sprawdzasz, czy możesz znaleźć wersję zwiniętą i czy curl nie jest załadowany. 'extension_loaded ('curl')' jest dużo bardziej bezpośredni. – deweydb

4

Zawsze możesz utworzyć nową stronę i użyć numeru phpinfo(). Przewiń w dół do sekcji zwinięcia i sprawdź, czy jest włączona.

8

Mam nadzieję, że to pomoże.

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

['function_exists'] (http://php.net/function_exists) samo zwraca" true "lub" false ". Możesz po prostu zwrócić jego wartość zwracaną. Nie ma potrzeby 4 dodatkowych linii kodu, dla tego * jednego liniowca *. Również twoja funkcja nie ma końca '}'! – Prasanth

+1

zgadzają się na obciążenie w kodzie, ale funkcja ma koniec} jako jeden wiersz, jeśli instrukcje else nie wymagają nawiasów klamrowych. Ale może złe wcięcie sprawiło, że popełniłeś ten błąd. –

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"; 
} 
?> 

lub prosta -

<? 
phpinfo(); 
?> 

Wystarczy wyszukać curl

źródła - http://www.mattsbits.co.uk/item-164.html

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

Dla każdego, kto chce szybko sprawdzić wiersz polecenia bez tworzenia pliku: 'echo" "| php' –

+0

lub: 'php -i | grep curl' lub 'php -r 'var_dump (extension_loaded (" curl "));' ^^ – hakre

+0

po prostu umieść to w pliku phpinfo, w pierwszym wierszu:' ' – sjas

4

Jego zawsze lepiej iść do ogólnej funkcji wielokrotnego użytku w twoim projekcie w hich zwraca, czy załadowano rozszerzenie. Można użyć następujących funkcji, aby sprawdzić -

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

Wykorzystanie

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

, dlaczego więc nie używać bezpośrednio extension_loaded? ... –

+0

Załóżmy, że pracujesz w dużym projekcie i chcesz sprawdzić powyższy warunek ponad 30 do 40 razy. Następnie musisz ręcznie napisać od 30 do 40 razy i nagle otrzymujesz wymóg, abyś sprawdził z pewnymi warunkami, zanim będziesz musiał szukać i umieścić warunek we wszystkich 30 - 40 miejscach w twoim projekcie. Zamiast tego, jeśli posiadasz funkcję wielokrotnego użytku, możesz umieścić ten warunek w funkcji i możesz uniknąć narzutu szukania i zastępowania lub dodawania kodu. –

+1

Po to właśnie są narzędzia do refaktoryzacji. Ale w tym punkcie: wprowadzenie kodu, którego nie wiesz na pewno, że jest to konieczne, uznałbym za wadę. Więc powód, dla którego się nazywasz, jest powodem, aby tego nie robić w mojej opinii. – hakre

1

można sprawdzić umieszczając te kod w pliku 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"; 
} 

LUB

var_dump(extension_loaded('curl')); 
Powiązane problemy