xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_unparsed_entity_decl_handler 処理されないエンティティ宣言用ハンドラを設定する

説明

xml_set_unparsed_entity_decl_handler(XMLParser $parser, callable $handler): bool

XML パーサ parser の、 処理されないエンティティ宣言用ハンドラ関数を設定します。

このハンドラは、XML パーサが次のような NDATA 宣言を有する 外部エンティティ宣言を処理する際にコールされます。

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

外部エンティティ宣言の記述用定義に関しては、 » XML 1.0 仕様の 4.2.2 節を参照ください。

パラメータ

parser

処理されないエンティティ宣言用ハンドラ関数を設定する XML パーサへの参照。

handler

handlerは、 parser に関して xml_parse() がコールされた際に必要な関数の名前を有する文字列です。

handler という名前の関数は次のような 6 つのパラメータをとる必要があります。

handler(
    XMLParser $parser,
    string $entity_name,
    string $base,
    string $system_id,
    string $public_id,
    string $notation_name
)
parser
最初のパラメータ、parser は ハンドラをコールする XML パーサへのリファレンスです。
entity_name
宣言しようとするエンティティの名前。
base
外部エンティティのシステム ID(systemId) を取得する際の基本となります。現在、このパラメータは、常に 空の文字列に設定されています。
system_id
外部エンティティのシステム ID。
public_id
外部エンティティのパブリック ID。
notation_name
このエンティティの表記法の名前 (xml_set_notation_decl_handler() を参照ください)。

ハンドラ関数が空の文字列または false に設定されていた場合、そのハンドラは無効となります。

注意: 関数名の代わりに、オブジェクトへの リファレンスを格納した配列とメソッド名を指定することもできます。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.0.0 引数 parser は、 XMLParser インスタンスを期待するようになりました。 これより前のバージョンでは、リソースが期待されていました。
関連キーワード:  エンティティ, 宣言, ハンドラ, 設定, 処理, handler, parameter, parser, 関数, string