xml_set_external_entity_ref_handler 外部エンティティリファレンスハンドラを設定する &reftitle.description; truexml_set_external_entity_ref_handler XMLParserparser callablestringnullhandler XML パーサー parser の外部エンティティ参照用ハンドラ関数を設定します。 &reftitle.parameters; &xml.parser.param; handler &xml.handler.description; handler のシグネチャは、以下でなければいけません: boolhandler XMLParserparser stringopen_entity_names stringfalsebase stringsystem_id stringfalsepublic_id &xml.handler.parser.param; open_entity_names エンティティの処理を行うためにオープンされたエンティティの 名前のスペース区切りのリストです (参照されるエンティティの名前を含みます)。 base これは外部エンティティのシステム ID (systemid) のベースとして解決されます。 system_id エンティティ宣言で指定されたシステム ID です。 public_id エンティティ宣言で 指定されたパブリック ID または指定されない場合は空の 文字列です。パブリック ID の中の空白文字は、XML 仕様で規定された 正規化を行っています。 ハンドラは、エンティティを処理された場合、&true; を返す必要があります。 そうでない場合、&false; を返すべきです。 ハンドラから返された値が &false; の場合、XML パーサーは処理を中断し、 xml_get_error_codeXML_ERROR_EXTERNAL_ENTITY_HANDLING を返します。 &reftitle.returnvalues; &return.true.always; &reftitle.changelog; &Version; &Description; &xml.changelog.handler-param; &xml.changelog.parser-param; 7.3.0 拡張モジュールが libxml を使ってビルドされていた場合、 handler の戻り値は無視されることはなくなりました。 これより前のバージョンでは、戻り値が無視されていた上、パースが止まりませんでした。