XML Parser 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(XMLParser $parser, callable $handler): bool

XML 파서 parser에 대한 외부 엔티티 참조 핸들러 함수를 설정합니다.


매개변수

parser
외부 엔터티 참조 처리기 함수를 설정하기 위한 XML 파서에 대한 참조입니다.
handler
handlerparser를 위해 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
두 번째 매개변수인 open_entity_names는 이 엔티티의 구문 분석을 위해 열려 있는 엔티티 이름의 공백으로 구분된 목록입니다(참조된 엔티티의 이름 포함).
base
이것은 외부 엔티티의 시스템 식별자(system_id)를 확인하기 위한 기반입니다. 현재 이 매개변수는 항상 빈 문자열로 설정됩니다.
system_id
네 번째 매개변수인 system_id는 엔티티 선언에 지정된 시스템 식별자입니다.
public_id
다섯 번째 매개변수 public_id는 엔티티 선언에 지정된 공용 식별자이거나 지정되지 않은 경우 빈 문자열입니다. 공개 식별자의 공백은 XML 사양에서 요구하는 대로 정규화됩니다.

핸들러 함수가 빈 문자열 또는 false로 설정되면 해당 핸들러가 비활성화됩니다.

참고: 함수 이름 대신 객체 참조와 메서드 이름이 포함된 배열을 제공할 수도 있습니다.


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


변경 로그

버전 설명
8.0.0 parser는 이제 XMLParser 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다.
7.3.0 확장이 libxml에 대해 빌드된 경우 handler의 반환 값은 더 이상 무시되지 않습니다. 이전에는 반환 값이 무시되었으며 구문 분석이 중단되지 않았습니다.