以编程方式检测PHP中的PEAR

时间:2010-11-30 03:55:41

标签: php pear

我的一个脚本需要PEAR来获得一些额外的功能。我需要一种方法可以检测PEAR本身是否安装了PEAR。如果正确安装PEAR.php将包含在包含路径中,我想我可以检查PEAR.php是否存在file_exists(),然后检查其中的PEAR类以尝试确定如果它实际上是我想要的文件。但是听起来非常糟糕且不可靠。

有人可以提出更好或更好的方法吗?

4 个答案:

答案 0 :(得分:8)

您可以尝试使用以下设置,而不是使用file_exists:

$filePath = stream_resolve_include_path('System.php');
if ($filePath !== false)
{
    require_once('System.php'); // you could use $filePath as well
    echo 'PEAR installed';
}
else
{
    echo 'PEAR not installed';
}

棘手的部分是,PEAR很可能被添加到当前的包含路径中。这就是你可以使用System.php而不是/path/to/pear/System.php的原因。通过这种方式,您可以确定是否已安装PEAR。

答案 1 :(得分:4)

您可以通过要求System.php文件查看该类是否存在来检查是否安装了PEAR。此方法可以按照此处的说明完成:http://pear.php.net/manual/en/installation.checking.php

System.php随每个PEAR安装一起提供,因此它是一种检测它的简单方法。

<?php
require_once 'System.php';
if(class_exists('System')===true) {
   echo 'PEAR is installed!';
} else {
   echo 'PEAR is not installed :(';
}
?>

希望这能帮到你!

答案 2 :(得分:1)

<?php 
if(@include_once("System.php"))
{
    echo "Pear is installed";
}
else
{
    echo "Nope";
}
?>

答案 3 :(得分:0)

上面的代码不正确。你应该像这样使用它:

<?php
include 'System.php';
if(class_exists('System')===true) {
    echo 'PEAR is installed!';
} else {
    echo 'PEAR is not installed :(';
}
?>