2012-11-17 19 views
64

Eventuali duplicati:
Writing a function in phpcome verificare se l'arricciatura è attivato o disattivato

Sto utilizzando il seguente codice

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

questo può ottenerlo abilitato o disabili

ma vorrei fare come funzione di dire nome della funzione è _iscurl

allora posso chiamare come dopo ogni dove nel mio codice sito

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

~ grazie

quasi uguale a mia domanda precedente check if allow_url_fopen is enabled or not

+7

Perché non usare 'function_exists ('curl_version')', come la vostra funzione '_iscurl()'? –

+1

Vedere il manuale su come scrivere una funzione ['function'] (http://php.net/function), inserire qui il proprio liner, sostituire' echo' con 'return' e tagliare il ternario. – mario

risposta

109

Basta restituire il controllo esistente da un function.

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

Questo funziona, ed è accettato, ma le risposte sottostanti sono quelle che considererei meno hacky e più chiaro a qualcun altro che legge il codice. Se leggo questo, potrei pensare che tu stia specificatamente controllando per vedere se riesci a trovare la versione dell'arricciatura, e non per vedere se il ricciolo è caricato. 'extension_loaded ('curl')' è molto più diretto. – deweydb

4

È sempre possibile creare una nuova pagina e utilizzare phpinfo(). Scorri verso il basso fino alla sezione di arricciatura e vedi se è abilitato.

8

Spero che questo aiuti.

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

['function_exists'] (http://php.net/function_exists) restituisce' true' o 'false'. Puoi solo restituire il suo valore di ritorno. Non sono necessarie 4 linee di codice aggiuntive, per questo * un rivestimento *. Inoltre, la tua funzione non ha fine '}'! – Prasanth

+1

d'accordo sul sovraccarico nel codice, ma la funzione ha una fine} come una riga se le altre istruzioni non hanno bisogno di parentesi graffe. Ma forse la brutta indentazione ti ha fatto sbagliare. –

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

o un semplice -

<? 
phpinfo(); 
?> 

Basta cercare ricciolo

fonte - http://www.mattsbits.co.uk/item-164.html

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

Per chiunque voglia controllare rapidamente la riga di comando senza creare un file: 'echo" "| php' –

+0

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

+0

metti questo in un file phpinfo, nella prima riga: ' ' – sjas

4

E 'sempre meglio andare per una funzione riutilizzabile generica nel tuo progetto w che restituisce se l'estensione è stata caricata. È possibile utilizzare la seguente funzione per controllare -

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

Uso

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

quindi perché non utilizzare extension_loaded direttamente? ... –

+0

Supponiamo che tu stia lavorando in un grande progetto e desideri controllare le condizioni di cui sopra più di 30 o 40 volte. Quindi devi scrivere manualmente da 30 a 40 volte e all'improvviso hai bisogno di controllare alcune condizioni prima di dover cercare e inserire condizioni in tutti i 30 - 40 luoghi del tuo progetto. Invece se si dispone di una funzione riutilizzabile è possibile inserire questa condizione all'interno della funzione e evitare il sovraccarico di ricerca e sostituzione o aggiunta di codice. –

+1

Ecco a cosa servono gli strumenti di refactoring. Ma sul punto: Introducendo un codice di cui non si conosce per certo che sia necessario considererei un difetto. Quindi la ragione per cui ti chiami è una ragione per non farlo secondo la mia opinione. – hakre

1

è possibile controllare mettendo questi codice nel file 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"; 
} 

O

var_dump(extension_loaded('curl')); 
Problemi correlati