必须是通用的,不通用的做法就不用说
也就是说必须支持各个运行环境的。
比如jmail FSO等等这些组件。虽然开发中我们也许用不到这些组件
但我们现在是讨论判断服务器支持某自定义组件!除了修改PHP.INI外比如在一些虚拟主机上没有权限改PHP.INI那怎么办?所以说得有一个通用的
function objectinstall($Object){
  $object_install=false;
  $obj=new com($Object);
  $xTestObj=is_object($obj);
  if($xTestObj){$object_install=true;}
  return $object_install;
}这个方法行不通,因为如果该服务器不安装该组件的话就出错了,而且这个是微软的东西,也并不通用当然还有extension_loaded这个,但是这个如果在PHP.INI并没有的包,也判断不出来所以大家都来讨论一下通用的吧

解决方案 »

  1.   


    <?php
    $inis = ini_get_all();print_r($inis);?> 
      

  2.   

    比如判断是否支持jmail
    你这个怎么判断?
    汗!
      

  3.   

    <?php
    function objectinstall($Object){ 
      $object_install=false; 
      $obj=new com($Object); 
      $xTestObj=is_object($obj); 
      if($xTestObj){$object_install=true;} 
      return $object_install; 

    ?>
    <?php if(objectinstall("JMail.Message")==false){?><font class=red><b>×</b></font> (不支持)<?php }else{ ?><b>√</b> (支持)<?php } ?>比如这样的判断
    但我开始说了这个方法行不通,因为如果该服务器不安装该组件的话就出错了,而且这个是微软的东西,也并不通用
      

  4.   


    你想判断哪些组件??是扩展还是COM。
      

  5.   

    通用则没有:函数是否存在:
    function_exists扩展是否加载:
    extension_loaded对象是否存在:
    class_exists(类)
    interface_exists
    method_exists
    property_exists 
      

  6.   

    $word = new COM("word.application") or die("Unable to instantiate Word");$word = new COM("word.application") or return false;
      

  7.   

    没有通用的情况不要拿ASP和PHP比较
      

  8.   

    没有通用那多郁闷啊每次都要改!!PHP真的没办法做到了?你说的那些函数我都知道都说了想用一个通用的!也许是有,我不知道!
      

  9.   


    你说的这些我都知道,而且我说了extension_loaded这个如果在PHP.INI并没有的包,也判断不出来;
      

  10.   

    哎,PHP不会如此不济吧??JSP都可以,NET也可以,ASP也可以
    惟独他不行?
      

  11.   

    不要以为Php很差,其实它很好的,学过C语言的才能体会啊。
      

  12.   


    这就是通用的,如果创建 COM 不成功就出错~~~不知道你还要什么通用的?本身 PHP 不像 ASP 那样是基于 COM 组件的,所以 PHP 也没有特意要提供关于 COM 组件的功能完整的操作。你现在看到的 COM 组件的支持,只是一个 ext 而已。也就是用 C 调用 COM 包裹成 php ext 调用。这就好比非让一头耕地的牛拉磨一样,不是不行,而是不对~~
      

  13.   


    唉,碰上你这种较真的还真没什么办法~~给你个通用的吧~~~
    <?php
    function testCom($name) {
    try {
      $word = new COM($name); 
      return true;
    } catch(Exception $e) {
      return false;
    }
    }var_dump(testCom('word.application'));
    var_dump(testCom('foo.bar'));
      

  14.   


    晕了~~~你是真不会还是抬杠呢?
    加个 class_exists 就通吃了~~~<?php
    function testCom($name) {
    if(!class_exists('COM')){
      return false;
    }
    try {
      $word = new COM($name); 
      return true;
    } catch(Exception $e) {
      return false;
    }
    }var_dump(testCom('word.application'));
    var_dump(testCom('foo.bar'));
      

  15.   

    学习了判断com组年是否存在,如果存在,为真,不存在,为假,写一数组测一下所有组件即可
    第二,linux下不支持com
    第三,支持com 时数据传参会有问题,据说不支持二维数组
      

  16.   

    哈哈,别见怪啊3年没用PHP,而且没用linux下做过PHP,只是知道那么一点而已所以别见怪啊