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


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');
}

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


46
var_dump(extension_loaded('curl'));

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'));

8

Espero que esto ayude.

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

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.


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');

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.