xml_set_external_entity_ref_handler
(PHP 4, PHP 5, PHP 7)
xml_set_external_entity_ref_handler — 外部エンティティリファレンスハンドラを設定する
説明
XML パーサ parser
の外部エンティティ参照用ハンドラ関数を設定します。
パラメータ
parser
外部エンティティリファレンスハンドラ関数を設定する XML パーサへの参照。
handler
handler
は、parser
に関して xml_parse() がコールされた際に必要な関数の名前を有する文字列です。handler
という名前の関数は 5 つのパラメータをとり、 整数値を返す必要があります。ハンドラから返された値がfalse
の場合 (これは値が返されない場合に相当します)、XML パーサは処理を中断し、 xml_get_error_code() はXML_ERROR_EXTERNAL_ENTITY_HANDLING
を返します。handler ( XMLParser
$parser
, string$open_entity_names
, string$base
, string$system_id
, string$public_id
)parser
- 最初のパラメータ、parser は ハンドラをコールする XML パーサへのリファレンスです。
open_entity_names
-
2 番目のパラメータ、
open_entity_names
は、 エンティティの処理を行うためにオープンされたエンティティの 名前のスペース区切りのリストです (参照されるエンティティの名前を含みます)。 base
-
これは外部エンティティのシステム
ID (
systemid
) を有しています。 現在このパラメータは常に空の文字列に設定されています。 system_id
-
4 番目のパラメータ、
systemId
は エンティティ宣言で指定されたシステム ID です。 public_id
-
5 番目のパラメータ
publicId
は、エンティティ宣言で 指定されたパブリック ID または指定されない場合は空の 文字列です。パブリック ID の中の空白文字は、XML 仕様で規定された 正規化を行っています。
ハンドラ関数が空の文字列あるいは
false
に設定されている場合、 そのハンドラは無効となります。注意: 関数名の代わりに、オブジェクトへの リファレンスを格納した配列とメソッド名を指定することもできます。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 | 引数 parser は、
XMLParser インスタンスを期待するようになりました。 これより前のバージョンでは、リソースが期待されていました。 |
7.3.0 | 拡張モジュールが libxml を使ってビルドされた場合には、コールバック
|
変更履歴
バージョン | 説明 |
---|---|
7.3.0 | 拡張機能が libxml を使ってビルドされていた場合、
|