如何测试PHP中的curl是否可用且没有错误

时间:2016-09-13 13:09:53

标签: php curl hide suppress error-suppression

我正在尝试检测是否在从命令行运行的脚本中使用PHP安装了curl。我尝试了以下方法:

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

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

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

但在这两种情况下我收到此消息:

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

我宁愿隐藏错误消息,但似乎@和error_reporting不起作用。是否有不同的方法来抑制此消息?

1 个答案:

答案 0 :(得分:3)

您可以检查已安装的排名

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