(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_external_entity_ref_handler — 外部エンティティリファレンスハンドラを設定する
XML パーサ parser
の外部エンティティ参照用ハンドラ関数を設定します。
parser
XMLパーサ
handler
null
や空文字列を渡すと、ハンドラはデフォルトの状態にリセットされます。
handler
が callable の場合、その callable がハンドラとして設定されます。
handler
が文字列の場合、xml_set_object() で設定されたオブジェクトのメソッド名になります。
handler
のシグネチャは、以下でなければいけません:
$parser
,$open_entity_names
,$base
,$system_id
,$public_id
parser
open_entity_names
base
systemid
) のベースとして解決されます。
system_id
public_id
ハンドラは、エンティティを処理された場合、true
を返す必要があります。
そうでない場合、false
を返すべきです。
ハンドラから返された値が false
の場合、XML パーサは処理を中断し、
xml_get_error_code() は
XML_ERROR_EXTERNAL_ENTITY_HANDLING
を返します。
常に true
を返します。
バージョン | 説明 |
---|---|
8.0.0 |
引数 parser は、
XMLParser インスタンスを期待するようになりました。
これより前のバージョンでは、有効な xml resource が期待されていました。
|
7.3.0 |
拡張モジュールが libxml を使ってビルドされた場合には、コールバック
handler
の戻り値が無視されることはなくなりました。
このバージョン以前はコールバックの戻り値が無視され、パースが止まりませんでした。
|
バージョン | 説明 |
---|---|
7.3.0 |
拡張モジュールが libxml を使ってビルドされていた場合、
handler の戻り値は無視されることはなくなりました。
これより前のバージョンでは、戻り値が無視されていた上、パースが止まりませんでした。
|