(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_unparsed_entity_decl_handler — 処理されないエンティティ宣言用ハンドラを設定する
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
null
が渡されると、ハンドラはデフォルトの状態にリセットされます。
空文字列を渡すことでもハンドラはリセットされますが、これは PHP 8.4.0 以降非推奨となっています。
handler
が callable の場合、その callable がハンドラとして設定されます。
handler
が文字列の場合、xml_set_object() で設定されたオブジェクトのメソッド名になります。
PHP 8.4.0 以降、非推奨となっています。
PHP 8.4.0 以降では、実際に呼び出されるときではなく、ハンドラを設定する際に callable であるかがチェックされます。 従って、コールバックとしてメソッド文字列を指定する場合、それより前に、 xml_set_object() を呼び出しておく必要があります。 しかし、この動作も PHP 8.4.0 以降非推奨となっているため、メソッドには適切な callable を使用することが推奨されます。
handler
のシグネチャは、以下でなければいけません:
$parser
,$entity_name
,$base
,$system_id
,$public_id
,$notation_name
parser
entity_name
base
systemId
)
を取得する際のベースになります。
system_id
public_id
notation_name
バージョン | 説明 |
---|---|
8.4.0 |
非 callable な string を handler に渡すことは、現在非推奨となっています。
メソッドには適切な callable を使用するか、ハンドラをリセットする場合は null を使用してください。
|
8.4.0 |
handler が callable として有効であるかどうかは、
呼び出し時ではなく、ハンドラーを設定する際にチェックされるようになりました。
|
8.0.0 |
引数 parser は、
XMLParser インスタンスを期待するようになりました。
これより前のバージョンでは、有効な xml resource が期待されていました。
|