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
handler
는parser
를 위해 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 의 반환 값은 더 이상 무시되지 않습니다. 이전에는 반환 값이 무시되었으며 구문 분석이 중단되지 않았습니다. |