我有一个使用DOMDocument的脚本.在某些环境中,它可能会失败,原因可能是某个模块未加载.我try 做的是为此脚本的用户提供修复此行为的说明.

以下是重现该问题的最小脚本:

<?php
  echo 'start!';
  try {
    $doc = new DOMDocument();
  } catch (Exception $e) {
    echo 'catched';
  }
  echo 'end';
?>

如果我在浏览器中打开它(由我当前的服务器提供服务,涉及nginx),我只看到start!(返回代码是500;如果省略try..catch,则输出相同).因此,问题不仅在于检测是否安装了正确的模块(我是否应该使用extension_loaded('dom')来判断它?),还在于try..catch似乎不起作用(我在输出中没有得到catched;在本例中我使用的是PHP 7.4.3).

我应该如何正确处理这个案件,有什么建议吗?

推荐答案

你可以用class_exists()来测试这个班级

例如

if (!class_exists('DOMDocument')){
   echo "Please install DOMDocument";
   exit;
}

Php相关问答推荐

无法使用PHP DomDocument找到IMG元素

未找到laravel cascadeOnEdit

如何在Livewire中验证多个 Select 字段

wp_enqueue_scripts not loading(基于类的插件)

照明\Support\Collection::Filter():参数#1($Callback)的类型必须为?可调用、已给定数组、已调用

如何将对我的域的请求重定向到子文件夹中的索引,同时保留域URL并使用.htaccess?

如何在函数中定位WooCommerce产品循环

如何使用这种格式构建XML?

如何将WooCommerce产品属性术语名称显示为链接术语?

PHP-带POST验证的for循环

在冲突和几何上插入的Postgres参数化查询在PHP中不起作用

WooCommerce常规价格增加额外的附加平价

在WooCommerce Admin产品列表自定义列中显示来自元数据的统计数据

更改特定产品标签的 Woocommerce 产品名称

显示 woocommerce 中所选变体的属性术语描述

当未 Select 任何变体时,在 WooCommerce 可变产品上显示自定义文本

Composer自动加载器重复了子类的类文件路径

如何获取用户之间的最新消息列表

使用来自 PHP 表单的数据更新 xml 命名空间

如何使用属性创建属性预设?