Search
  1. 定義済み定数
  2. libXMLError クラス
  3. libxml_clear_errors PHP5~〔libxmlエラーハンドラをクリアする〕
  4. libxml_get_errors PHP5~〔エラー配列を取得する〕
  5. libxml_get_last_error PHP5~〔libxmlから直近のエラーを取得する〕
  6. libxml_set_streams_context PHP5~〔次のlibxmlドキュメントの読込/書きこみのためにストリームコンテキストを設定する〕
  7. libxml_use_internal_errors PHP5~〔libxmlエラーを無効にし、ユーザが必要に応じてエラー情報を取得できるようにする〕

定義済み定数

unknown

libxmlでは、下記の定数が定義されています。

定義済み定数説明
LIBXML_COMPACTinteger小さなノードを割り当てるように最適化。アプリケーションのコードを変更することなしに高速化することが可能。(Libxml v2.6.21~)
LIBXML_DTDATTRintegerデフォルトのDTD属性。
LIBXML_DTDLOADinteger外部サブセットをロードする。
LIBXML_DTDVALIDintegerDTDで検証。
LIBXML_NOBLANKSinteger空白のノードを削除。
LIBXML_NOCDATAintegerCDATAをテキストノードとしてマージ。
LIBXML_NOEMPTYTAGinteger空タグを拡張する。例えば<br /><br></br>にする。※DOMDocument::saveおよびDOMDocument::saveXML関数でのみ有効。
LIBXML_NOENTintegerエンティティを置換。
LIBXML_NOERRORintegerエラー出力を制御。
LIBXML_NONETintegerドキュメントロード時にネットワークアクセスを無効にする。
LIBXML_NOWARNINGinteger警告出力を抑制する。
LIBXML_NOXMLDECLintegerドキュメントの保存時にXML宣言を削除する。(Libxml v2.6.21~)
LIBXML_NSCLEANinteger冗長な名前空間宣言を削除。
LIBXML_XINCLUDEintegerXInclude置換を実装する。
LIBXML_ERR_ERRORinteger復帰可能なエラー。
LIBXML_ERR_FATALinteger致命的なエラー 。
LIBXML_ERR_NONEintegerエラーなし。
LIBXML_ERR_WARNINGinteger単純な警告。
LIBXML_VERSIONinteger20605や20617のようなlibxml バージョン。
LIBXML_DOTTED_VERSIONinteger2.6.5または2.6.17のようなlibxmlのバージョン。

libXMLError クラス

unknown

libXMLErrorクラスは、libxmlが無視するエラーについてのさまざまな情報を含みます。

クラスの概要

ibXMLError   {
	/* プロパティ */
	public int $level ;
	public int $code ;
	public int $column ;
	public string $message ;
	public string $file ;
	public int $line ;
}

プロパティ

プロパティ説明
level

エラーの深刻度。下記の定数のいずれか。

  • LIBXML_ERR_WARNING 単純な警告
  • LIBXML_ERR_ERROR 復帰可能なエラー
  • LIBXML_ERR_FATAL 致命的なエラー
codeエラーコード。
columnエラーが発生した列。※このプロパティはlibxmlで完全には実装されていないため、0が返されることがあります。
messageエラーメッセージ。
fileファイル名。XMLを文字列から読み込んだ場合は空文字列。
lineエラーが発生した行。

libxml_clear_errors PHP5~
libxmlエラーハンドラをクリアする

unknown

void libxml_clear_errors ( void )

libxmlエラーハンドルのバッファをクリアします。 返り値はありません。

<?
# ユーザーによるエラー処理を有効にする
var_dump(libxml_use_internal_errors(true)); // // bool(false) 

# 存在しないファイルを指定
$xml=simplexml_load_file('dedmo/book.xml');

if(!$xml){
    # エラー配列を取得する
    $errors=libxml_get_errors();
    print_r($errors);
    # libxmlエラーハンドラをクリアする
    libxml_clear_errors();
}
/*
bool(false)
Array
(
    [0] => LibXMLError Object
        (
            [level] => 1
            [code] => 1549
            [column] => 0
            [message] => failed to load external entity "dedmo/book.xml"
            [file] => 
            [line] => 0
        )

)
*/
?>

libxml_get_errors PHP5~
エラー配列を取得する

unknown

array libxml_get_errors ( void )

エラー配列を取得します。 エラーがバッファにある場合にLibXMLErrorオブジェクトの配列、それ以外の場合に空の配列を返します。

<?
# 簡単な libxml エラーハンドラを構築する方法
libxml_use_internal_errors(true);

$xmlstr=<<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc=simplexml_load_string($xmlstr);
$xml=explode("\n"$xmlstr);

if(!$doc){
    $errors=libxml_get_errors();
    foreach ($errors as $error) {
        echo display_xml_error($error$xml);
    }
    libxml_clear_errors();
}

function display_xml_error($error$xml){
    $return=$xml[$error->line 1] . "\n";
    $return.=str_repeat('-'$error->column) . "^\n";
    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return.="Warning $error->code: ";
            break;
         case LIBXML_ERR_ERROR:
            $return.="Error $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return.="Fatal Error $error->code: ";
            break;
    }
    $return.=trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";
    if ($error->file){
        $return.="\n  File: $error->file";
    }
    return "$return\n\n--------------------------------------------\n\n";
}
/*
  <titles>PHP: Behind the Parser</title>
----------------------------------------------^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

--------------------------------------------
x*/
?>

libxml_get_last_error PHP5~
libxmlから直近のエラーを取得する

unknown

libXMLError libxml_get_last_error ( void )

libxmlから直近のエラーを取得します。 エラーがバッファにある場合にLibXMLErrorオブジェクト、それ以外の場合にFALSEを返します。

libxml_set_streams_context PHP5~
次のlibxmlドキュメントの読込/書きこみのためにストリームコンテキストを設定する

unknown

void libxml_set_streams_context ( resource $ストリームコンテキスト )

次のlibxmlドキュメントの読込/書込のためにストリームコンテキストを設定します。 返り値はありません。

オプションの第1引数ストリームコンテキストリソースには、strem_context_create()で作成したストリームコンテキストを指定します。

<?
$opts=array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context=stream_context_create($opts);
libxml_set_streams_context($context);

# HTTPによりファイルをリクエスト
$doc = new DOMDocument();
$doc->load('/content/demo/book.xml');
echo $doc->saveXML();
?>

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

unknown

bool libxml_use_internal_errors ( [ bool $use_errors=false ] )

標準のlibxmlエラーを無効にし、ユーザーが必要に応じてエラー情報を取得できるようにします。 返り値として、use_errorsの前の値を返します。

オプションの第1引数use_errorsには、ユーザーによるエラー処理を有効にするかどうかの有無を指定します。 デフォルトはFALSE(無効)です。

<?
# ユーザーによるエラー処理を有効にする
var_dump(libxml_use_internal_errors(true)); // // bool(false) 

# 存在しないファイルを指定
$xml=simplexml_load_file('dedmo/book.xml');

if(!$xml){
    # エラー配列を取得する
    $errors=libxml_get_errors();
    print_r($errors);
    # libxmlエラーハンドラをクリアする
    libxml_clear_errors();
}
/*
bool(false)
Array
(
    [0] => LibXMLError Object
        (
            [level] => 1
            [code] => 1549
            [column] => 0
            [message] => failed to load external entity "dedmo/book.xml"
            [file] => 
            [line] => 0
        )

)
*/
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women