PHP

PHP

[PHP]xml_set_unparsed_entity_decl_handlerとは?非解析対象実体宣言を検知する方法を徹底解説

はじめに前回の記事では、DTDの記法宣言(<!NOTATION>)を検知する xml_set_notation_decl_handler() を解説し、その中で「非解析対象実体(unparsed entity)」という関連する概念に触れまし...
PHP

[PHP]xml_set_start_namespace_decl_handlerとは?名前空間宣言の開始を検知する方法を徹底解説

はじめに前々回の記事では、名前空間宣言のスコープ終了を検知する xml_set_end_namespace_decl_handler() を解説しました。今回はその対となる、名前空間宣言の開始を検知する xml_set_start_name...
PHP

[PHP]xml_set_processing_instruction_handlerとは?XML処理命令を検知する方法を徹底解説

はじめにこれまでの記事で、要素・テキスト・名前空間宣言・DTD関連など、XML文書のさまざまな構成要素を検知するハンドラ関数を数多く解説してきました。今回取り上げる xml_set_processing_instruction_handle...
PHP

[PHP]xml_set_notation_decl_handlerとは?DTDの記法宣言を検知する方法を徹底解説

はじめに前回の記事では、XXE攻撃対策として重要な xml_set_external_entity_ref_handler() を解説しました。今回取り上げる xml_set_notation_decl_handler() も同じくDTD(...
PHP

[PHP]xml_set_external_entity_ref_handlerとは?外部実体参照を検知・制御する方法を徹底解説

はじめにこれまでの記事で、XML要素・テキスト・名前空間宣言など、さまざまなイベントを検知するハンドラ関数を解説してきました。今回取り上げる xml_set_external_entity_ref_handler() は、その中でも特にセキ...
PHP

[PHP]xml_set_end_namespace_decl_handlerとは?名前空間宣言のスコープ終了を検知する方法を徹底解説

はじめにこれまでの記事で、名前空間対応のパーサーを生成する xml_parser_create_ns() を解説し、その中で名前空間宣言の開始を検知する xml_set_start_namespace_decl_handler() に触れま...
PHP

[PHP]xml_set_element_handlerとは?XML要素の開始・終了を検知する最重要ハンドラを徹底解説

はじめにこれまでの記事で xml_set_character_data_handler() や xml_set_default_handler() を解説する中で、必ずと言っていいほど一緒に登場してきたのが xml_set_element_...
PHP

[PHP]xml_set_default_handlerとは?他のハンドラで処理されないXMLデータを捕捉する方法を徹底解説

はじめに前回の記事では、要素内のテキストを取得する xml_set_character_data_handler() を解説しました。SAX方式のXML解析では、要素の開始・終了、テキストデータ、コメント、処理命令など、それぞれ専用のハンド...
PHP

[PHP]xml_set_character_data_handlerとは?XML要素内のテキストを取得するハンドラの登録方法を徹底解説

はじめにこれまでの記事で、xml_parse() を使ったSAX方式のXML解析を数多く紹介してきましたが、その中で頻繁に登場していたのが xml_set_character_data_handler() です。今回はこの関数を正面から取り...
PHP

[PHP]xml_parser_set_optionとは?XMLパーサーの挙動をカスタマイズする方法を徹底解説

はじめに前回の記事では、XMLパーサーの現在の設定値を取得する xml_parser_get_option() を解説しました。今回はその対となる、設定を実際に変更するための関数、xml_parser_set_option() を正面から取...