xml_set_processing_instruction_handler
処理命令 (PI) 用ハンドラを設定する
説明
true xml_set_processing_instruction_handler(XMLParser $parser
, callable $handler
)
処理命令のフォーマットは以下のとおりです:
警告
PHP コードは、処理命令 <?php
によって区切られます。
よって、XMLドキュメントに PHP コードを入れることが可能です。
しかし、PI 終了タグ (?>
) をデータに含めてはいけません。
PI 終了タグ が埋め込まれたPHPコードの一部として存在していた場合、
残りの PHP コードは、"真の" PI 終了タグと同じく文字データとして処理されます。
パラメータ
-
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
のシグネチャは、下記でなければいけません:
void handler(XMLParser $parser
, string $target
, string $data
)
-
parser
-
ハンドラをコールするXMLパーサ
-
target
-
処理命令のターゲット
-
data
-
処理命令のデータ