Cómo comprobar si curl está habilitado o deshabilitado

81

Posible duplicado:
escribiendo una función en php

Estoy usando el siguiente código

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

esto puede activarlo o desactivarlo

pero me gustaría hacer que la función diga que el nombre de la función es _iscurl

entonces puedo llamarlo siguiendo en cualquier lugar del código de mi sitio web

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

casi lo mismo que mi pregunta anterior, verifique si allow_url_fopen está habilitado o no

Reham Fahmy
fuente
7
¿Por qué no utilizarlo function_exists('curl_version') como _iscurl()función?
Anirudh Ramanathan
1
Consulte el manual sobre cómo escribir un function, su paquete de una sola línea en la hay, sustituir el echocon returny cortar el cabo ternaria.
mario

Respuestas:

133

Simplemente devuelva su cheque existente de una función .

function _isCurl(){
    return function_exists('curl_version');
}
John V.
fuente
4
Esto funciona y se acepta, pero las respuestas a continuación son las que yo consideraría menos pirateadas y más claras para otra persona que lea el código. Si leo esto, podría pensar que está comprobando específicamente para ver si puede encontrar la versión de curl y no para ver si curl está cargado. extension_loaded('curl')es mucho más directo.
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";
}
?>

o uno simple -

<?
phpinfo();
?>

Solo busca rizo

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

Amit Pandey
fuente
46
var_dump(extension_loaded('curl'));
Alex S
fuente
11
Para cualquiera que quiera verificar rápidamente la línea de comando sin crear un archivo:echo "<?php var_dump(extension_loaded('curl')); ?>" | php
The Unknown Dev
1
o: php -i | grep curlo php -r 'var_dump(extension_loaded("curl"));'^^
hakre
solo ponga esto en un archivo phpinfo, en la primera línea: `<? php var_dump (extension_loaded ('curl'));?>`
sjas
8

puede verificar poniendo este código en el archivo 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'));
manish1706
fuente
8

Espero que esto ayude.

<?php
    function _iscurl() {
        return function_exists('curl_version');
    }
?>
bikash shrestha
fuente
11
function_existssí mismo vuelve trueo false. Simplemente puede devolver su valor de retorno. No hay necesidad de 4 líneas adicionales de código para este trazador de líneas . Además, ¡tu función no tiene fin }!
Prasanth
1
acuerde la sobrecarga en el código, pero la función tiene un final} como una línea si las declaraciones else no necesitan corchetes. Pero tal vez la mala sangría te hizo cometer ese error.
Sam Vloeberghs
5

Siempre puedes crear una nueva página y usar phpinfo(). Desplácese hacia abajo hasta la sección de curl y vea si está habilitada.

Samuel Cook
fuente
5

Siempre es mejor optar por una función genérica reutilizable en su proyecto que devuelva si la extensión se cargó. Puede utilizar la siguiente función para comprobar:

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

Uso

echo isExtensionLoaded('curl');
echo isExtensionLoaded('gd');
Channaveer Hakari
fuente
1
Suponga que trabaja en un gran proyecto y desea verificar la condición anterior más de 30 a 40 veces. Luego, debe escribir manualmente de 30 a 40 veces y, de repente, tiene el requisito de verificar alguna condición antes de que, en ese momento, necesite buscar y poner la condición en los 30-40 lugares de su proyecto. En cambio, si tiene una función reutilizable, puede poner esa condición dentro de la función y puede evitar la sobrecarga de buscar y reemplazar o agregar código.
Channaveer Hakari
2
Para eso están las herramientas de refactorización. Pero en el punto: introducir un código del que no sabes con certeza si es necesario, lo consideraría un defecto. Entonces, la razón por la que nombras es una razón para no hacerlo en mi opinión.
hakre
Gran idea. Comencé a empaquetar todas las funciones nativas de php. Los recogí en una biblioteca. ¿Alguien interesado?
rosell.dk
@ rosell.dk Estoy interesado, por favor contáctame. Gracias
Channaveer Hakari
@ rosell.dk ¡LOL!
parvus