PHP 7.2.9 Released

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_use_internal_errors libxmlエラーを無効にし、ユーザーが必要に応じてエラー情報を取得できるようにする

説明

bool libxml_use_internal_errors ([ bool $use_errors = false ] )

libxml_use_internal_errors() により、 標準のlibxmlエラーを無効にし、ユーザーによるエラー処理を有効にすることができます。

パラメータ

use_errors

ユーザーによるエラー処理を有効 (TRUE) または無効 (FALSE) にする。 無効にすると、既に存在する libxml のエラーもすべてクリアします。

返り値

この関数は、 use_errorsの前の値を返します。

例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)

参考

add a note add a note

User Contributed Notes 3 notes

up
21
B Crawford
10 years ago
When using this funtion, be sure to clear your internal error buffer. If you dn't and you are using this in a long running process, you may find that all your memory is used up.
up
2
marcovtwout
5 years ago
When using libxml_use_internal_errors(true), and perform a possibly memory intensive operation like simplexml_load_string() next, you might end up with a blank screen and no php error logged because the error message been suppressed.
up
-4
james at dunmore dot me dot uk
9 years ago
We use a custom error handler using  set_error_handler()  I found that after I call

libxml_use_internal_errors(false);

It resets my error_handler - not sure if this is a bug or not, I will report it as a bug - however, I needed to repeat my call to set_error_handler

(did confuse me for a while)
To Top