xml_set_external_entity_ref_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_external_entity_ref_handler -- 建立外部實體指向處理器

說明

bool xml_set_external_entity_ref_handler ( resource parser, callback handler )

parser 參數特殊的 XML 解析器建立外部實體指向處理器函數。參數 start_element_handlerend_element_handler 為表示函數名稱的字串,這些函數必須在為 parser 特殊的解析器呼叫 xml_parse() 函數時已存在。

handler 參數命名的函數名必須接受五個參數,並應該返回一個整型值。若果處理器的返回值為 FALSE(這也是函數沒有確定返回值時的返回值),XML 解析器將停止解析, xml_get_error_code() 函數將返回 XML_ERROR_EXTERNAL_ENTITY_HANDLINGhandler ( resource parser, string open_entity_names, string base, string system_id, string public_id )

parser

第一個參數 parser 為指向要呼叫處理器的 XML 解析器的指標。

open_entity_names

第二個參數 open_entity_names 是為該實體的解析開放的實體名清單(內含被指向的實體名),這些實體名由空格隔開。

base

這個參數是解析外部實體的系統標識符(system_id)的基礎。現用的該參數通常都被設定為空字串。

system_id

第四個參數 system_id 是在實體定義聲明中特殊的系統標識符。

public_id

第五個參數 public_id 是在實體定義聲明中特殊的公共標識符,若果未指定任何標識符,則該字串為空。公共標識符中的空格將按照 XML 的要求被標準化。

若果處理器函數名被設定為空字串或是 FALSE,則該有問題的處理器將被屏蔽。

若果處理器被成功的建立,該函數將返回 TRUE;若果 parser 指向的不是合法的解析器,函數該函數將返回 FALSE

注: 除了函數名,還可以用一個陣列作參數,該陣列由一個物件名和該對象的一個方法名兩個元素組成。