xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

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

說明

xml_set_external_entity_ref_handler(resource $parser, callable $handler): bool

parser 參數(shù)指定的 XML 解析器建立外部實體指向處理器函數(shù)。

參數(shù)

parser

XML 解析器的引用,用于建立外部實體指向處理器。

handler

參數(shù) handler 為表示函數(shù)名稱的字符串,函數(shù)必須在為 parser 指定的解析器調(diào)用 xml_parse() 函數(shù)時已存在。

handler 參數(shù)命名的函數(shù)名必須接受五個參數(shù),并應(yīng)該返回一個整型值。如果處理器的返回值為 false(這也是函數(shù)沒有確定返回值時的返回值),XML 解析器將停止解析, xml_get_error_code() 函數(shù)將返回 XML_ERROR_EXTERNAL_ENTITY_HANDLING。

handler(
    resource $parser,
    string $open_entity_names,
    string $base,
    string $system_id,
    string $public_id
)
parser
第一個參數(shù) parser 為指向要調(diào)用處理器的 XML 解析器的指針。
open_entity_names
第二個參數(shù) open_entity_names 是為該實體的解析開放的實體名列表(包括被指向的實體名),這些實體名由空格隔開。
base
這個參數(shù)是解析外部實體的系統(tǒng)標(biāo)識符(system_id)的基礎(chǔ)。當(dāng)前該參數(shù)通常都被設(shè)置為空字符串。
system_id
第四個參數(shù) system_id 是在實體定義聲明中指定的系統(tǒng)標(biāo)識符。
public_id
第五個參數(shù) public_id 是在實體定義聲明中指定的公共標(biāo)識符,如果未指定任何標(biāo)識符,則該字符串為空。公共標(biāo)識符中的空格將按照 XML 的要求被正?;?。

如果處理器函數(shù)名被設(shè)置為空字符串或者 false,則該有問題的處理器將被屏蔽。

注意: 除了函數(shù)名,含有對象引用的數(shù)組和方法名也可以作為參數(shù)。

返回值

成功時返回 true, 或者在失敗時返回 false