(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_processing_instruction_handler — 処理命令 (PI) 用ハンドラを設定する
XML パーサ parser
の処理命令 (PI) 用ハンドラ関数を設定します。
処理命令のフォーマットは以下のとおりです:
<?target data ?>
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
のシグネチャは、下記でなければいけません:
parser
target
data
常に true
を返します。