libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_use_internal_errors 禁用 libxml 错误并允许用户根据需要获取错误信息

说明

libxml_use_internal_errors(?bool $use_errors = null): bool

libxml_use_internal_errors() 允许您禁用标准 libxml 错误并启用用户错误处理。

参数

use_errors

启用 (true) 用户错误处理或禁用 (false) 用户错误处理。禁用还将清除任何现有的 libxml 错误。

返回值

此函数返回 use_errors 的先前值。

变更日志

版本 说明
8.0.0 use_errors 现在可以为空。以前,它的默认值为 false

示例

示例 #1 一个 libxml_use_internal_errors() 示例

此示例演示了 libxml 错误的基本用法以及此函数返回的值。

<?php

// 启用用户错误处理
var_dump(libxml_use_internal_errors(true));

// 加载文档
$doc = new DOMDocument;

if (!
$doc->load('file.xml')) {
foreach (
libxml_get_errors() as $error) {
// 在这里处理错误
}

libxml_clear_errors();
}

?>

上面的示例将输出

bool(false)

参见

添加注释

用户贡献的注释 3 个注释

B Crawford
16 年前
使用此函数时,请确保清除内部错误缓冲区。如果您没有这样做,并且您在长时间运行的进程中使用此函数,您可能会发现所有内存都被使用。
marcovtwout
11 年前
当使用 libxml_use_internal_errors(true) 时,并且接下来执行可能占用大量内存的操作(如 simplexml_load_string()),您最终可能会得到空白屏幕并且没有记录 PHP 错误,因为错误消息被抑制。
james at dunmore dot me dot uk
15 年前
我们使用 set_error_handler() 的自定义错误处理程序,我发现在我调用

libxml_use_internal_errors(false);

它重置了我的 error_handler - 不确定这是不是 bug,我会将其报告为 bug - 然而,我需要重复调用 set_error_handler

(这让我困惑了一段时间)
To Top