2016-09-13 8 views
0

J'essaie de détecter si curl est installé en utilisant PHP dans un script exécuté à partir de la ligne de commande. J'ai essayé les éléments suivants:comment tester si curl est disponible en PHP sans erreurs

if(@function_exists('curl_version')){ 
... 
} 

et

error_reporting(E_ERROR); 
ini_set('display_errors', '0'); 

if(is_callable('curl_init')){ 
... 
} 

mais dans les deux cas, j'obtenir ce message:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20121212/curl.so' - /usr/local/lib/php/extensions/no-debug-zts-20121212/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0 

Je préférerais cacher le message d'erreur, mais il semble que la @ et error_reporting ne fonctionnent pas. Existe-t-il une manière différente de supprimer ce message?

+1

double possible de [comment vérifier si le froissement est activé ou désactivé] (http://stackoverflow.com/questions/13433946/how- to-check-if-curl-is-enabled-or-disabled) –

+2

On dirait que votre problème est plus lié à vos configs essayant toujours de référencer l'extension quand elle n'est pas là. Notez le 'PHP Startup'. –

+2

En tant que bon développeur, vous ne devriez jamais préférer cacher des erreurs, des avertissements, etc. Combattre la cause à la place –

Répondre

3

vous pouvez vérifier vos extionsions installés

$needed_extensions = array('curl', '... other extionsions to check'); 
    $missing_extensions = array(); 
    foreach ($needed_extensions as $needed_extension) { 
     if (!extension_loaded($needed_extension)) { 
      $missing_extensions[] = $needed_extension; 
     } 
    } 
    if (count($missing_extensions) > 0) { 
     echo 'This software needs the following extensions, please install/enable them: ' . implode(', ', $missing_extensions) . PHP_EOL; 
     exit(1); 
    } 

'

+0

J'ai essayé ceci et il est correctement retourné que l'extension n'a pas été chargée, mais l'avertissement est toujours apparu. – raphael75

+1

est-il possible que vous ayez activé l'extension dans le fichier php.ini mais qu'elle n'existe pas sur votre disque dur? – mirko911