/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/dom/php_dom.stub.php
2 189 строк
60 KB
Niels Dossche
Drop LIBXML_HTML_ENABLED checks (#20083)
08 окт 2025, 18:32
Не верифицирован
08 окт 2025, 18:32
44af9ad
Код
Авторство
О чём код?
<?php /** @generate-class-entries */ namespace { /** * @var int * @cvalue XML_ELEMENT_NODE */ const XML_ELEMENT_NODE = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_NODE */ const XML_ATTRIBUTE_NODE = UNKNOWN; /** * @var int * @cvalue XML_TEXT_NODE */ const XML_TEXT_NODE = UNKNOWN; /** * @var int * @cvalue XML_CDATA_SECTION_NODE */ const XML_CDATA_SECTION_NODE = UNKNOWN; /** * @var int * @cvalue XML_ENTITY_REF_NODE */ const XML_ENTITY_REF_NODE = UNKNOWN; /** * @var int * @cvalue XML_ENTITY_NODE */ const XML_ENTITY_NODE = UNKNOWN; /** * @var int * @cvalue XML_PI_NODE */ const XML_PI_NODE = UNKNOWN; /** * @var int * @cvalue XML_COMMENT_NODE */ const XML_COMMENT_NODE = UNKNOWN; /** * @var int * @cvalue XML_DOCUMENT_NODE */ const XML_DOCUMENT_NODE = UNKNOWN; /** * @var int * @cvalue XML_DOCUMENT_TYPE_NODE */ const XML_DOCUMENT_TYPE_NODE = UNKNOWN; /** * @var int * @cvalue XML_DOCUMENT_FRAG_NODE */ const XML_DOCUMENT_FRAG_NODE = UNKNOWN; /** * @var int * @cvalue XML_NOTATION_NODE */ const XML_NOTATION_NODE = UNKNOWN; /** * @var int * @cvalue XML_HTML_DOCUMENT_NODE */ const XML_HTML_DOCUMENT_NODE = UNKNOWN; /** * @var int * @cvalue XML_DTD_NODE */ const XML_DTD_NODE = UNKNOWN; /** * @var int * @cvalue XML_ELEMENT_DECL */ const XML_ELEMENT_DECL_NODE = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_DECL */ const XML_ATTRIBUTE_DECL_NODE = UNKNOWN; /** * @var int * @cvalue XML_ENTITY_DECL */ const XML_ENTITY_DECL_NODE = UNKNOWN; /** * @var int * @cvalue XML_NAMESPACE_DECL */ const XML_NAMESPACE_DECL_NODE = UNKNOWN; /** * @var int * @cvalue XML_LOCAL_NAMESPACE */ const XML_LOCAL_NAMESPACE = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_CDATA */ const XML_ATTRIBUTE_CDATA = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_ID */ const XML_ATTRIBUTE_ID = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_IDREF */ const XML_ATTRIBUTE_IDREF = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_IDREFS */ const XML_ATTRIBUTE_IDREFS = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_ENTITIES */ const XML_ATTRIBUTE_ENTITY = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_NMTOKEN */ const XML_ATTRIBUTE_NMTOKEN = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_NMTOKENS */ const XML_ATTRIBUTE_NMTOKENS = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_ENUMERATION */ const XML_ATTRIBUTE_ENUMERATION = UNKNOWN; /** * @var int * @cvalue XML_ATTRIBUTE_NOTATION */ const XML_ATTRIBUTE_NOTATION = UNKNOWN; /** * @var int * @cvalue PHP_ERR */ #[\Deprecated(since: '8.4', message: 'as it is no longer used')] const DOM_PHP_ERR = UNKNOWN; /** * @var int * @cvalue INDEX_SIZE_ERR */ const DOM_INDEX_SIZE_ERR = UNKNOWN; /** * @var int * @cvalue DOMSTRING_SIZE_ERR */ const DOMSTRING_SIZE_ERR = UNKNOWN; /** * @var int * @cvalue HIERARCHY_REQUEST_ERR */ const DOM_HIERARCHY_REQUEST_ERR = UNKNOWN; /** * @var int * @cvalue WRONG_DOCUMENT_ERR */ const DOM_WRONG_DOCUMENT_ERR = UNKNOWN; /** * @var int * @cvalue INVALID_CHARACTER_ERR */ const DOM_INVALID_CHARACTER_ERR = UNKNOWN; /** * @var int * @cvalue NO_DATA_ALLOWED_ERR */ const DOM_NO_DATA_ALLOWED_ERR = UNKNOWN; /** * @var int * @cvalue NO_MODIFICATION_ALLOWED_ERR */ const DOM_NO_MODIFICATION_ALLOWED_ERR = UNKNOWN; /** * @var int * @cvalue NOT_FOUND_ERR */ const DOM_NOT_FOUND_ERR = UNKNOWN; /** * @var int * @cvalue NOT_SUPPORTED_ERR */ const DOM_NOT_SUPPORTED_ERR = UNKNOWN; /** * @var int * @cvalue INUSE_ATTRIBUTE_ERR */ const DOM_INUSE_ATTRIBUTE_ERR = UNKNOWN; /** * @var int * @cvalue INVALID_STATE_ERR */ const DOM_INVALID_STATE_ERR = UNKNOWN; /** * @var int * @cvalue SYNTAX_ERR */ const DOM_SYNTAX_ERR = UNKNOWN; /** * @var int * @cvalue INVALID_MODIFICATION_ERR */ const DOM_INVALID_MODIFICATION_ERR = UNKNOWN; /** * @var int * @cvalue NAMESPACE_ERR */ const DOM_NAMESPACE_ERR = UNKNOWN; /** * @var int * @cvalue INVALID_ACCESS_ERR */ const DOM_INVALID_ACCESS_ERR = UNKNOWN; /** * @var int * @cvalue VALIDATION_ERR */ const DOM_VALIDATION_ERR = UNKNOWN; class DOMDocumentType extends DOMNode { /** * @readonly * @virtual */ public string $name; /** * @readonly * @virtual */ public DOMNamedNodeMap $entities; /** * @readonly * @virtual */ public DOMNamedNodeMap $notations; /** * @readonly * @virtual */ public string $publicId; /** * @readonly * @virtual */ public string $systemId; /** * @readonly * @virtual */ public ?string $internalSubset; } class DOMCdataSection extends DOMText { public function __construct(string $data) {} } class DOMComment extends DOMCharacterData { public function __construct(string $data = "") {} } interface DOMParentNode { /** @param DOMNode|string $nodes */ public function append(...$nodes): void; /** @param DOMNode|string $nodes */ public function prepend(...$nodes): void; /** @param DOMNode|string $nodes */ public function replaceChildren(...$nodes): void; } interface DOMChildNode { public function remove(): void; /** @param DOMNode|string $nodes */ public function before(... $nodes): void; /** @param DOMNode|string $nodes */ public function after(...$nodes): void; /** @param DOMNode|string $nodes */ public function replaceWith(...$nodes): void; } class DOMNode { public const int DOCUMENT_POSITION_DISCONNECTED = 0x01; public const int DOCUMENT_POSITION_PRECEDING = 0x02; public const int DOCUMENT_POSITION_FOLLOWING = 0x04; public const int DOCUMENT_POSITION_CONTAINS = 0x08; public const int DOCUMENT_POSITION_CONTAINED_BY = 0x10; public const int DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; /** * @readonly * @virtual */ public string $nodeName; /** @virtual */ public ?string $nodeValue; /** * @readonly * @virtual */ public int $nodeType; /** * @readonly * @virtual */ public ?DOMNode $parentNode; /** * @readonly * @virtual */ public ?DOMElement $parentElement; /** * @readonly * @virtual */ public DOMNodeList $childNodes; /** * @readonly * @virtual */ public ?DOMNode $firstChild; /** * @readonly * @virtual */ public ?DOMNode $lastChild; /** * @readonly * @virtual */ public ?DOMNode $previousSibling; /** * @readonly * @virtual */ public ?DOMNode $nextSibling; /** * @readonly * @virtual */ public ?DOMNamedNodeMap $attributes; /** * @readonly * @virtual */ public bool $isConnected; /** * @readonly * @virtual */ public ?DOMDocument $ownerDocument; /** * @readonly * @virtual */ public ?string $namespaceURI; /** @virtual */ public string $prefix; /** * @readonly * @virtual */ public ?string $localName; /** * @readonly * @virtual */ public ?string $baseURI; /** @virtual */ public string $textContent; /** @return DOMNode|false */ public function appendChild(DOMNode $node) {} /** @tentative-return-type */ public function C14N(bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): string|false {} /** @tentative-return-type */ public function C14NFile(string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): int|false {} /** @return DOMNode|false */ public function cloneNode(bool $deep = false) {} /** @tentative-return-type */ public function getLineNo(): int {} /** @tentative-return-type */ public function getNodePath(): ?string {} /** @tentative-return-type */ public function hasAttributes(): bool {} /** @tentative-return-type */ public function hasChildNodes(): bool {} /** @return DOMNode|false */ public function insertBefore(DOMNode $node, ?DOMNode $child = null) {} /** @tentative-return-type */ public function isDefaultNamespace(string $namespace): bool {} /** @tentative-return-type */ public function isSameNode(DOMNode $otherNode): bool {} public function isEqualNode(?DOMNode $otherNode): bool {} /** @tentative-return-type */ public function isSupported(string $feature, string $version): bool {} /** @tentative-return-type */ public function lookupNamespaceURI(?string $prefix): ?string {} /** @tentative-return-type */ public function lookupPrefix(string $namespace): ?string {} /** @tentative-return-type */ public function normalize(): void {} /** @return DOMNode|false */ public function removeChild(DOMNode $child) {} /** @return DOMNode|false */ public function replaceChild(DOMNode $node, DOMNode $child) {} public function contains(DOMNode|DOMNameSpaceNode|null $other): bool {} public function getRootNode(?array $options = null): DOMNode {} public function compareDocumentPosition(DOMNode $other): int {} public function __sleep(): array {} public function __wakeup(): void {} } class DOMNameSpaceNode { /** * @readonly * @virtual */ public string $nodeName; /** * @readonly * @virtual */ public ?string $nodeValue; /** * @readonly * @virtual */ public int $nodeType; /** * @readonly * @virtual */ public string $prefix; /** * @readonly * @virtual */ public ?string $localName; /** * @readonly * @virtual */ public ?string $namespaceURI; /** * @readonly * @virtual */ public bool $isConnected; /** * @readonly * @virtual */ public ?DOMDocument $ownerDocument; /** * @readonly * @virtual */ public ?DOMNode $parentNode; /** * @readonly * @virtual */ public ?DOMElement $parentElement; /** @implementation-alias DOMNode::__sleep */ public function __sleep(): array {} /** @implementation-alias DOMNode::__wakeup */ public function __wakeup(): void {} } class DOMImplementation { /** @tentative-return-type */ public function hasFeature(string $feature, string $version): bool {} /** @return DOMDocumentType|false */ public function createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = "") {} /** @tentative-return-type */ public function createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument {} } class DOMDocumentFragment extends DOMNode implements DOMParentNode { /** * @readonly * @virtual */ public ?DOMElement $firstElementChild; /** * @readonly * @virtual */ public ?DOMElement $lastElementChild; /** * @readonly * @virtual */ public int $childElementCount; public function __construct() {} /** @tentative-return-type */ public function appendXML(string $data): bool {} /** * @param DOMNode|string $nodes * @implementation-alias DOMElement::append */ public function append(...$nodes): void {} /** * @param DOMNode|string $nodes * @implementation-alias DOMElement::prepend */ public function prepend(...$nodes): void {} /** * @param DOMNode|string $nodes * @implementation-alias DOMDocument::replaceChildren */ public function replaceChildren(...$nodes): void {} } class DOMNodeList implements IteratorAggregate, Countable { /** * @readonly * @virtual */ public int $length; /** @tentative-return-type */ public function count(): int {} public function getIterator(): Iterator {} /** @return DOMElement|DOMNode|DOMNameSpaceNode|null */ public function item(int $index) {} } class DOMCharacterData extends DOMNode implements DOMChildNode { /** @virtual */ public string $data; /** * @readonly * @virtual */ public int $length; /** * @readonly * @virtual */ public ?DOMElement $previousElementSibling; /** * @readonly * @virtual */ public ?DOMElement $nextElementSibling; /** @tentative-return-type */ public function appendData(string $data): true {} /** @return string|false */ public function substringData(int $offset, int $count) {} /** @tentative-return-type */ public function insertData(int $offset, string $data): bool {} /** @tentative-return-type */ public function deleteData(int $offset, int $count): bool {} /** @tentative-return-type */ public function replaceData(int $offset, int $count, string $data): bool {} /** * @param DOMNode|string $nodes * @implementation-alias DOMElement::replaceWith */ public function replaceWith(...$nodes): void {} /** @implementation-alias DOMElement::remove */ public function remove(): void {} /** * @param DOMNode|string $nodes * @implementation-alias DOMElement::before */ public function before(... $nodes): void {} /** * @param DOMNode|string $nodes * @implementation-alias DOMElement::after */ public function after(...$nodes): void {} } class DOMAttr extends DOMNode { /** * @readonly * @virtual */ public string $name; /** * @readonly * @virtual */ public bool $specified; /** @virtual */ public string $value; /** * @readonly * @virtual */ public ?DOMElement $ownerElement; /** * @readonly * @virtual */ public mixed $schemaTypeInfo; public function __construct(string $name, string $value = "") {} /** @tentative-return-type */ public function isId(): bool {} } class DOMElement extends DOMNode implements \DOMParentNode, \DOMChildNode { /** * @readonly * @virtual */ public string $tagName; /** @virtual */ public string $className; /** @virtual */ public string $id; /** * @readonly * @virtual */ public mixed $schemaTypeInfo; /** * @readonly * @virtual */ public ?DOMElement $firstElementChild; /** * @readonly * @virtual */ public ?DOMElement $lastElementChild; /** * @readonly * @virtual */ public int $childElementCount; /** * @readonly * @virtual */ public ?DOMElement $previousElementSibling; /** * @readonly * @virtual */ public ?DOMElement $nextElementSibling; public function __construct(string $qualifiedName, ?string $value = null, string $namespace = "") {} /** @tentative-return-type */ public function getAttribute(string $qualifiedName): string {} public function getAttributeNames(): array {} /** @tentative-return-type */ public function getAttributeNS(?string $namespace, string $localName): string {} /** @return DOMAttr|DOMNameSpaceNode|false */ public function getAttributeNode(string $qualifiedName) {} /** @return DOMAttr|DOMNameSpaceNode|null */ public function getAttributeNodeNS(?string $namespace, string $localName) {} /** @tentative-return-type */ public function getElementsByTagName(string $qualifiedName): DOMNodeList {} /** @tentative-return-type */ public function getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList {} /** @tentative-return-type */ public function hasAttribute(string $qualifiedName): bool {} /** @tentative-return-type */ public function hasAttributeNS(?string $namespace, string $localName): bool {} /** @tentative-return-type */ public function removeAttribute(string $qualifiedName): bool {} /** @tentative-return-type */ public function removeAttributeNS(?string $namespace, string $localName): void {} /** @return DOMAttr|false */ public function removeAttributeNode(DOMAttr $attr) {} /** @return DOMAttr|bool */ public function setAttribute(string $qualifiedName, string $value) {} /** @tentative-return-type */ public function setAttributeNS(?string $namespace, string $qualifiedName, string $value): void {} /** @return DOMAttr|null|false */ public function setAttributeNode(DOMAttr $attr) {} /** @return DOMAttr|null|false */ public function setAttributeNodeNS(DOMAttr $attr) {} /** @tentative-return-type */ public function setIdAttribute(string $qualifiedName, bool $isId): void {} /** @tentative-return-type */ public function setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void {} /** @tentative-return-type */ public function setIdAttributeNode(DOMAttr $attr, bool $isId): void {} public function toggleAttribute(string $qualifiedName, ?bool $force = null): bool {} public function remove(): void {} /** @param DOMNode|string $nodes */ public function before(... $nodes): void {} /** @param DOMNode|string $nodes */ public function after(...$nodes): void {} /** @param DOMNode|string $nodes */ public function replaceWith(...$nodes): void {} /** @param DOMNode|string $nodes */ public function append(...$nodes): void {} /** @param DOMNode|string $nodes */ public function prepend(...$nodes): void {} /** @param DOMNode|string $nodes */ public function replaceChildren(...$nodes): void {} public function insertAdjacentElement(string $where, DOMElement $element): ?DOMElement {} public function insertAdjacentText(string $where, string $data): void {} } class DOMDocument extends DOMNode implements DOMParentNode { /** * @readonly * @virtual */ public ?DOMDocumentType $doctype; /** * @readonly * @virtual */ public DOMImplementation $implementation; /** * @readonly * @virtual */ public ?DOMElement $documentElement; /** * @readonly * @deprecated * @virtual */ public ?string $actualEncoding; /** @virtual */ public ?string $encoding; /** * @readonly * @virtual */ public ?string $xmlEncoding; /** @virtual */ public bool $standalone; /** @virtual */ public bool $xmlStandalone; /** @virtual */ public ?string $version; /** @virtual */ public ?string $xmlVersion; /** @virtual */ public bool $strictErrorChecking; /** @virtual */ public ?string $documentURI; /** * @readonly * @deprecated * @virtual */ public mixed $config; /** @virtual */ public bool $formatOutput; /** @virtual */ public bool $validateOnParse; /** @virtual */ public bool $resolveExternals; /** @virtual */ public bool $preserveWhiteSpace; /** @virtual */ public bool $recover; /** @virtual */ public bool $substituteEntities; /** * @readonly * @virtual */ public ?DOMElement $firstElementChild; /** * @readonly * @virtual */ public ?DOMElement $lastElementChild; /** * @readonly * @virtual */ public int $childElementCount; public function __construct(string $version = "1.0", string $encoding = "") {} /** @return DOMAttr|false */ public function createAttribute(string $localName) {} /** @return DOMAttr|false */ public function createAttributeNS(?string $namespace, string $qualifiedName) {} /** @return DOMCdataSection|false */ public function createCDATASection(string $data) {} /** @tentative-return-type */ public function createComment(string $data): DOMComment {} /** @tentative-return-type */ public function createDocumentFragment(): DOMDocumentFragment {} /** @return DOMElement|false */ public function createElement(string $localName, string $value = "") {} /** @return DOMElement|false */ public function createElementNS(?string $namespace, string $qualifiedName, string $value = "") {} /** @return DOMEntityReference|false */ public function createEntityReference(string $name) {} /** @return DOMProcessingInstruction|false */ public function createProcessingInstruction(string $target, string $data = "") {} /** @tentative-return-type */ public function createTextNode(string $data): DOMText {} /** @tentative-return-type */ public function getElementById(string $elementId): ?DOMElement {} /** * @tentative-return-type * @implementation-alias DOMElement::getElementsByTagName */ public function getElementsByTagName(string $qualifiedName): DOMNodeList {} /** * @tentative-return-type * @implementation-alias DOMElement::getElementsByTagNameNS */ public function getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList {} /** @return DOMNode|false */ public function importNode(DOMNode $node, bool $deep = false) {} /** @tentative-return-type */ public function load(string $filename, int $options = 0): bool {} /** @tentative-return-type */ public function loadXML(string $source, int $options = 0): bool {} /** @tentative-return-type */ public function normalizeDocument(): void {} /** @tentative-return-type */ public function registerNodeClass(string $baseClass, ?string $extendedClass): true {} /** @tentative-return-type */ public function save(string $filename, int $options = 0): int|false {} /** @tentative-return-type */ public function loadHTML(string $source, int $options = 0): bool {} /** @tentative-return-type */ public function loadHTMLFile(string $filename, int $options = 0): bool {} /** @tentative-return-type */ public function saveHTML(?DOMNode $node = null): string|false {} /** @tentative-return-type */ public function saveHTMLFile(string $filename): int|false {} /** @tentative-return-type */ public function saveXML(?DOMNode $node = null, int $options = 0): string|false {} #ifdef LIBXML_SCHEMAS_ENABLED /** @tentative-return-type */ public function schemaValidate(string $filename, int $flags = 0): bool {} /** @tentative-return-type */ public function schemaValidateSource(string $source, int $flags = 0): bool {} /** @tentative-return-type */ public function relaxNGValidate(string $filename): bool {} /** @tentative-return-type */ public function relaxNGValidateSource(string $source): bool {} #endif /** @tentative-return-type */ public function validate(): bool {} /** @tentative-return-type */ public function xinclude(int $options = 0): int|false {} /** @tentative-return-type */ public function adoptNode(DOMNode $node): DOMNode|false {} /** * @param DOMNode|string $nodes * @implementation-alias DOMElement::append */ public function append(...$nodes): void {} /** * @param DOMNode|string $nodes * @implementation-alias DOMElement::prepend */ public function prepend(...$nodes): void {} /** @param DOMNode|string $nodes */ public function replaceChildren(...$nodes): void {} } /** @alias Dom\DOMException */ final class DOMException extends Exception { /** * Intentionally left untyped for BC reasons * @var int */ public $code = 0; // TODO add proper type (i.e. int|string) } class DOMText extends DOMCharacterData { /** * @readonly * @virtual */ public string $wholeText; public function __construct(string $data = "") {} /** @tentative-return-type */ public function isWhitespaceInElementContent(): bool {} /** * @tentative-return-type * @alias DOMText::isWhitespaceInElementContent */ public function isElementContentWhitespace(): bool {} /** @return DOMText|false */ public function splitText(int $offset) {} } class DOMNamedNodeMap implements IteratorAggregate, Countable { /** * @readonly * @virtual */ public int $length; /** @tentative-return-type */ public function getNamedItem(string $qualifiedName): ?DOMNode {} /** @tentative-return-type */ public function getNamedItemNS(?string $namespace, string $localName): ?DOMNode {} /** @tentative-return-type */ public function item(int $index): ?DOMNode {} /** @tentative-return-type */ public function count(): int {} public function getIterator(): Iterator {} } class DOMEntity extends DOMNode { /** * @readonly * @virtual */ public ?string $publicId; /** * @readonly * @virtual */ public ?string $systemId; /** * @readonly * @virtual */ public ?string $notationName; /** * @readonly * @deprecated * @virtual */ public ?string $actualEncoding; /** * @readonly * @deprecated * @virtual */ public ?string $encoding; /** * @readonly * @deprecated * @virtual */ public ?string $version; } class DOMEntityReference extends DOMNode { public function __construct(string $name) {} } class DOMNotation extends DOMNode { /** * @readonly * @virtual */ public string $publicId; /** * @readonly * @virtual */ public string $systemId; } class DOMProcessingInstruction extends DOMNode { /** * @readonly * @virtual */ public string $target; /** @virtual */ public string $data; public function __construct(string $name, string $value = "") {} } #ifdef LIBXML_XPATH_ENABLED /** @not-serializable */ class DOMXPath { /** * @readonly * @virtual */ public DOMDocument $document; /** @virtual */ public bool $registerNodeNamespaces; public function __construct(DOMDocument $document, bool $registerNodeNS = true) {} /** @tentative-return-type */ public function evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed {} /** @tentative-return-type */ public function query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed {} /** @tentative-return-type */ public function registerNamespace(string $prefix, string $namespace): bool {} /** @tentative-return-type */ public function registerPhpFunctions(string|array|null $restrict = null): void {} public function registerPhpFunctionNS(string $namespaceURI, string $name, callable $callable): void {} public static function quote(string $str): string {} } #endif function dom_import_simplexml(object $node): DOMAttr|DOMElement {} } namespace Dom { /** * @var int * @cvalue INDEX_SIZE_ERR */ const INDEX_SIZE_ERR = UNKNOWN; /** * @var int * @cvalue DOMSTRING_SIZE_ERR */ const STRING_SIZE_ERR = UNKNOWN; /** * @var int * @cvalue HIERARCHY_REQUEST_ERR */ const HIERARCHY_REQUEST_ERR = UNKNOWN; /** * @var int * @cvalue WRONG_DOCUMENT_ERR */ const WRONG_DOCUMENT_ERR = UNKNOWN; /** * @var int * @cvalue INVALID_CHARACTER_ERR */ const INVALID_CHARACTER_ERR = UNKNOWN; /** * @var int * @cvalue NO_DATA_ALLOWED_ERR */ const NO_DATA_ALLOWED_ERR = UNKNOWN; /** * @var int * @cvalue NO_MODIFICATION_ALLOWED_ERR */ const NO_MODIFICATION_ALLOWED_ERR = UNKNOWN; /** * @var int * @cvalue NOT_FOUND_ERR */ const NOT_FOUND_ERR = UNKNOWN; /** * @var int * @cvalue NOT_SUPPORTED_ERR */ const NOT_SUPPORTED_ERR = UNKNOWN; /** * @var int * @cvalue INUSE_ATTRIBUTE_ERR */ const INUSE_ATTRIBUTE_ERR = UNKNOWN; /** * @var int * @cvalue INVALID_STATE_ERR */ const INVALID_STATE_ERR = UNKNOWN; /** * @var int * @cvalue SYNTAX_ERR */ const SYNTAX_ERR = UNKNOWN; /** * @var int * @cvalue INVALID_MODIFICATION_ERR */ const INVALID_MODIFICATION_ERR = UNKNOWN; /** * @var int * @cvalue NAMESPACE_ERR */ const NAMESPACE_ERR = UNKNOWN; /** * @var int * @cvalue VALIDATION_ERR */ const VALIDATION_ERR = UNKNOWN; /** * @var int * @cvalue DOM_HTML_NO_DEFAULT_NS */ const HTML_NO_DEFAULT_NS = UNKNOWN; interface ParentNode { public function append(Node|string ...$nodes): void; public function prepend(Node|string ...$nodes): void; public function replaceChildren(Node|string ...$nodes): void; public function querySelector(string $selectors): ?Element; public function querySelectorAll(string $selectors): NodeList; } interface ChildNode { public function remove(): void; public function before(Node|string ...$nodes): void; public function after(Node|string ...$nodes): void; public function replaceWith(Node|string ...$nodes): void; } /** * @strict-properties * @not-serializable */ class Implementation { public function createDocumentType(string $qualifiedName, string $publicId, string $systemId): DocumentType {} public function createDocument(?string $namespace, string $qualifiedName, ?DocumentType $doctype = null): XMLDocument {} public function createHTMLDocument(?string $title = null): HTMLDocument {} } /** @strict-properties */ class Node { private final function __construct() {} /** * @readonly * @virtual */ public int $nodeType; /** * @readonly * @virtual */ public string $nodeName; /** * @readonly * @virtual */ public string $baseURI; /** * @readonly * @virtual */ public bool $isConnected; /** * @readonly * @virtual */ public ?Document $ownerDocument; /** @implementation-alias DOMNode::getRootNode */ public function getRootNode(array $options = []): Node {} /** * @readonly * @virtual */ public ?Node $parentNode; /** * @readonly * @virtual */ public ?Element $parentElement; /** @implementation-alias DOMNode::hasChildNodes */ public function hasChildNodes(): bool {} /** * @readonly * @virtual */ public NodeList $childNodes; /** * @readonly * @virtual */ public ?Node $firstChild; /** * @readonly * @virtual */ public ?Node $lastChild; /** * @readonly * @virtual */ public ?Node $previousSibling; /** * @readonly * @virtual */ public ?Node $nextSibling; /** @virtual */ public ?string $nodeValue; /** @virtual */ public ?string $textContent; /** @implementation-alias DOMNode::normalize */ public function normalize(): void {} /** @implementation-alias DOMNode::cloneNode */ public function cloneNode(bool $deep = false): Node {} public function isEqualNode(?Node $otherNode): bool {} public function isSameNode(?Node $otherNode): bool {} public const int DOCUMENT_POSITION_DISCONNECTED = 0x01; public const int DOCUMENT_POSITION_PRECEDING = 0x02; public const int DOCUMENT_POSITION_FOLLOWING = 0x04; public const int DOCUMENT_POSITION_CONTAINS = 0x08; public const int DOCUMENT_POSITION_CONTAINED_BY = 0x10; public const int DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; public function compareDocumentPosition(Node $other): int {} public function contains(?Node $other): bool {} public function lookupPrefix(?string $namespace): ?string {} /** @implementation-alias DOMNode::lookupNamespaceURI */ public function lookupNamespaceURI(?string $prefix): ?string {} public function isDefaultNamespace(?string $namespace): bool {} public function insertBefore(Node $node, ?Node $child): Node {} public function appendChild(Node $node): Node {} public function replaceChild(Node $node, Node $child): Node {} public function removeChild(Node $child): Node {} /** @implementation-alias DOMNode::getLineNo */ public function getLineNo(): int {} public function getNodePath(): string {} /** @implementation-alias DOMNode::C14N */ public function C14N(bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): string|false {} /** @implementation-alias DOMNode::C14NFile */ public function C14NFile(string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): int|false {} /** @implementation-alias DOMNode::__sleep */ public function __sleep(): array {} /** @implementation-alias DOMNode::__wakeup */ public function __wakeup(): void {} } class NodeList implements \IteratorAggregate, \Countable { /** * @readonly * @virtual */ public int $length; /** @implementation-alias DOMNodeList::count */ public function count(): int {} /** @implementation-alias DOMNodeList::getIterator */ public function getIterator(): \Iterator {} /** @implementation-alias DOMNodeList::item */ public function item(int $index): ?Node {} } class NamedNodeMap implements \IteratorAggregate, \Countable { /** * @readonly * @virtual */ public int $length; /** @implementation-alias DOMNamedNodeMap::item */ public function item(int $index): ?Attr {} /** @implementation-alias DOMNamedNodeMap::getNamedItem */ public function getNamedItem(string $qualifiedName): ?Attr {} /** @implementation-alias DOMNamedNodeMap::getNamedItemNS */ public function getNamedItemNS(?string $namespace, string $localName): ?Attr {} /** @implementation-alias DOMNamedNodeMap::count */ public function count(): int {} /** @implementation-alias DOMNamedNodeMap::getIterator */ public function getIterator(): \Iterator {} } class DtdNamedNodeMap implements \IteratorAggregate, \Countable { /** * @readonly * @virtual */ public int $length; /** @implementation-alias DOMNamedNodeMap::item */ public function item(int $index): Entity|Notation|null {} /** @implementation-alias DOMNamedNodeMap::getNamedItem */ public function getNamedItem(string $qualifiedName): Entity|Notation|null {} /** @implementation-alias DOMNamedNodeMap::getNamedItemNS */ public function getNamedItemNS(?string $namespace, string $localName): Entity|Notation|null {} /** @implementation-alias DOMNamedNodeMap::count */ public function count(): int {} /** @implementation-alias DOMNamedNodeMap::getIterator */ public function getIterator(): \Iterator {} } class HTMLCollection implements \IteratorAggregate, \Countable { /** * @readonly * @virtual */ public int $length; /** @implementation-alias DOMNodeList::item */ public function item(int $index): ?Element {} public function namedItem(string $key): ?Element {} /** @implementation-alias DOMNodeList::count */ public function count(): int {} /** @implementation-alias DOMNodeList::getIterator */ public function getIterator(): \Iterator {} } enum AdjacentPosition : string { case BeforeBegin = "beforebegin"; case AfterBegin = "afterbegin"; case BeforeEnd = "beforeend"; case AfterEnd = "afterend"; } class Element extends Node implements ParentNode, ChildNode { /** * @readonly * @virtual */ public ?string $namespaceURI; /** * @readonly * @virtual */ public ?string $prefix; /** * @readonly * @virtual */ public string $localName; /** * @readonly * @virtual */ public string $tagName; /** * @readonly */ public HTMLCollection $children; /** * @readonly * @virtual */ public ?Element $firstElementChild; /** * @readonly * @virtual */ public ?Element $lastElementChild; /** * @readonly * @virtual */ public int $childElementCount; /** * @readonly * @virtual */ public ?Element $previousElementSibling; /** * @readonly * @virtual */ public ?Element $nextElementSibling; /** @virtual */ public string $id; /** @virtual */ public string $className; /** @readonly */ public TokenList $classList; /** @implementation-alias DOMNode::hasAttributes */ public function hasAttributes(): bool {} /** * @readonly * @virtual */ public NamedNodeMap $attributes; /** @implementation-alias DOMElement::getAttributeNames */ public function getAttributeNames(): array {} /** @implementation-alias DOMElement::getAttribute */ public function getAttribute(string $qualifiedName): ?string {} /** @implementation-alias DOMElement::getAttributeNS */ public function getAttributeNS(?string $namespace, string $localName): ?string {} /** @implementation-alias DOMElement::setAttribute */ public function setAttribute(string $qualifiedName, string $value): void {} /** @implementation-alias DOMElement::setAttributeNS */ public function setAttributeNS(?string $namespace, string $qualifiedName, string $value): void {} public function removeAttribute(string $qualifiedName): void {} /** @implementation-alias DOMElement::removeAttributeNS */ public function removeAttributeNS(?string $namespace, string $localName): void {} /** @implementation-alias DOMElement::toggleAttribute */ public function toggleAttribute(string $qualifiedName, ?bool $force = null): bool {} /** @implementation-alias DOMElement::hasAttribute */ public function hasAttribute(string $qualifiedName): bool {} /** @implementation-alias DOMElement::hasAttributeNS */ public function hasAttributeNS(?string $namespace, string $localName): bool {} /** @implementation-alias DOMElement::getAttributeNode */ public function getAttributeNode(string $qualifiedName): ?Attr {} /** @implementation-alias DOMElement::getAttributeNodeNS */ public function getAttributeNodeNS(?string $namespace, string $localName): ?Attr {} /** @implementation-alias Dom\Element::setAttributeNodeNS */ public function setAttributeNode(Attr $attr) : ?Attr {} public function setAttributeNodeNS(Attr $attr) : ?Attr {} public function removeAttributeNode(Attr $attr) : Attr {} public function getElementsByTagName(string $qualifiedName): HTMLCollection {} public function getElementsByTagNameNS(?string $namespace, string $localName): HTMLCollection {} public function getElementsByClassName(string $classNames): HTMLCollection {} public function insertAdjacentElement(AdjacentPosition $where, Element $element): ?Element {} public function insertAdjacentText(AdjacentPosition $where, string $data): void {} public function insertAdjacentHTML(AdjacentPosition $where, string $string): void {} /** @implementation-alias DOMElement::setIdAttribute */ public function setIdAttribute(string $qualifiedName, bool $isId): void {} /** @implementation-alias DOMElement::setIdAttributeNS */ public function setIdAttributeNS(?string $namespace, string $qualifiedName, bool $isId): void {} public function setIdAttributeNode(Attr $attr, bool $isId): void {} /** @implementation-alias DOMElement::remove */ public function remove(): void {} /** @implementation-alias DOMElement::before */ public function before(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::after */ public function after(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::replaceWith */ public function replaceWith(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::append */ public function append(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::prepend */ public function prepend(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::replaceChildren */ public function replaceChildren(Node|string ...$nodes): void {} public function querySelector(string $selectors): ?Element {} public function querySelectorAll(string $selectors): NodeList {} public function closest(string $selectors): ?Element {} public function matches(string $selectors): bool {} /** @virtual */ public string $innerHTML; /** @virtual */ public string $outerHTML; /** @virtual */ public string $substitutedNodeValue; /** @return list<NamespaceInfo> */ public function getInScopeNamespaces(): array {} /** @return list<NamespaceInfo> */ public function getDescendantNamespaces(): array {} public function rename(?string $namespaceURI, string $qualifiedName): void {} } class HTMLElement extends Element { } class Attr extends Node { /** * @readonly * @virtual */ public ?string $namespaceURI; /** * @readonly * @virtual */ public ?string $prefix; /** * @readonly * @virtual */ public string $localName; /** * @readonly * @virtual */ public string $name; /** @virtual */ public string $value; /** * @readonly * @virtual */ public ?Element $ownerElement; /** * @readonly * @virtual */ public bool $specified; /** @implementation-alias DOMAttr::isId */ public function isId(): bool {} /** @implementation-alias Dom\Element::rename */ public function rename(?string $namespaceURI, string $qualifiedName): void {} } class CharacterData extends Node implements ChildNode { /** * @readonly * @virtual */ public ?Element $previousElementSibling; /** * @readonly * @virtual */ public ?Element $nextElementSibling; /** @virtual */ public string $data; /** * @readonly * @virtual */ public int $length; /** @implementation-alias DOMCharacterData::substringData */ public function substringData(int $offset, int $count): string {} public function appendData(string $data): void {} public function insertData(int $offset, string $data): void {} public function deleteData(int $offset, int $count): void {} public function replaceData(int $offset, int $count, string $data): void {} /** @implementation-alias DOMElement::remove */ public function remove(): void {} /** @implementation-alias DOMElement::before */ public function before(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::after */ public function after(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::replaceWith */ public function replaceWith(Node|string ...$nodes): void {} } class Text extends CharacterData { /* No constructor because Node has a final private constructor, so PHP does not allow overriding that. */ /** @implementation-alias DOMText::splitText */ public function splitText(int $offset): Text {} /** * @readonly * @virtual */ public string $wholeText; } class CDATASection extends Text {} class ProcessingInstruction extends CharacterData { /** * @readonly * @virtual */ public string $target; } class Comment extends CharacterData { /* No constructor because Node has a final private constructor, so PHP does not allow overriding that. */ } class DocumentType extends Node implements ChildNode { /** * @readonly * @virtual */ public string $name; /** * @readonly * @virtual */ public DtdNamedNodeMap $entities; /** * @readonly * @virtual */ public DtdNamedNodeMap $notations; /** * @readonly * @virtual */ public string $publicId; /** * @readonly * @virtual */ public string $systemId; /** * @readonly * @virtual */ public ?string $internalSubset; /** @implementation-alias DOMElement::remove */ public function remove(): void {} /** @implementation-alias DOMElement::before */ public function before(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::after */ public function after(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::replaceWith */ public function replaceWith(Node|string ...$nodes): void {} } class DocumentFragment extends Node implements ParentNode { /** * @readonly */ public HTMLCollection $children; /** * @readonly * @virtual */ public ?Element $firstElementChild; /** * @readonly * @virtual */ public ?Element $lastElementChild; /** * @readonly * @virtual */ public int $childElementCount; /** @implementation-alias DOMDocumentFragment::appendXML */ public function appendXml(string $data): bool {} /** @implementation-alias DOMElement::append */ public function append(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::prepend */ public function prepend(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::replaceChildren */ public function replaceChildren(Node|string ...$nodes): void {} /** @implementation-alias Dom\Element::querySelector */ public function querySelector(string $selectors): ?Element {} /** @implementation-alias Dom\Element::querySelectorAll */ public function querySelectorAll(string $selectors): NodeList {} } class Entity extends Node { /** * @readonly * @virtual */ public ?string $publicId; /** * @readonly * @virtual */ public ?string $systemId; /** * @readonly * @virtual */ public ?string $notationName; } class EntityReference extends Node {} class Notation extends Node { /** * @readonly * @virtual */ public string $publicId; /** * @readonly * @virtual */ public string $systemId; } abstract class Document extends Node implements ParentNode { /** * @readonly */ public HTMLCollection $children; /** * @readonly * @virtual */ public ?Element $firstElementChild; /** * @readonly * @virtual */ public ?Element $lastElementChild; /** * @readonly * @virtual */ public int $childElementCount; /** @readonly */ public Implementation $implementation; /** @virtual */ public string $URL; /** @virtual */ public string $documentURI; /** @virtual */ public string $characterSet; /** @virtual */ public string $charset; /** @virtual */ public string $inputEncoding; /** * @readonly * @virtual */ public ?DocumentType $doctype; /** * @readonly * @virtual */ public ?Element $documentElement; /** @implementation-alias Dom\Element::getElementsByTagName */ public function getElementsByTagName(string $qualifiedName): HTMLCollection {} /** @implementation-alias Dom\Element::getElementsByTagNameNS */ public function getElementsByTagNameNS(?string $namespace, string $localName): HTMLCollection {} /** @implementation-alias Dom\Element::getElementsByClassName */ public function getElementsByClassName(string $classNames): HTMLCollection {} public function createElement(string $localName): Element {} public function createElementNS(?string $namespace, string $qualifiedName): Element {} /** @implementation-alias DOMDocument::createDocumentFragment */ public function createDocumentFragment(): DocumentFragment {} /** @implementation-alias DOMDocument::createTextNode */ public function createTextNode(string $data): Text {} /** @implementation-alias DOMDocument::createCDATASection */ public function createCDATASection(string $data): CDATASection {} /** @implementation-alias DOMDocument::createComment */ public function createComment(string $data): Comment {} public function createProcessingInstruction(string $target, string $data): ProcessingInstruction {} public function importNode(?Node $node, bool $deep = false): Node {} public function adoptNode(Node $node): Node {} /** @implementation-alias DOMDocument::createAttribute */ public function createAttribute(string $localName): Attr {} /** @implementation-alias DOMDocument::createAttributeNS */ public function createAttributeNS(?string $namespace, string $qualifiedName): Attr {} /** @implementation-alias DOMDocument::getElementById */ public function getElementById(string $elementId): ?Element {} public function registerNodeClass(string $baseClass, ?string $extendedClass): void {} #ifdef LIBXML_SCHEMAS_ENABLED /** @implementation-alias DOMDocument::schemaValidate */ public function schemaValidate(string $filename, int $flags = 0): bool {} /** @implementation-alias DOMDocument::schemaValidateSource */ public function schemaValidateSource(string $source, int $flags = 0): bool {} /** @implementation-alias DOMDocument::relaxNGValidate */ public function relaxNgValidate(string $filename): bool {} /** @implementation-alias DOMDocument::relaxNGValidateSource */ public function relaxNgValidateSource(string $source): bool {} #endif /** @implementation-alias DOMElement::append */ public function append(Node|string ...$nodes): void {} /** @implementation-alias DOMElement::prepend */ public function prepend(Node|string ...$nodes): void {} /** @implementation-alias DOMDocument::replaceChildren */ public function replaceChildren(Node|string ...$nodes): void {} public function importLegacyNode(\DOMNode $node, bool $deep = false): Node {} /** @implementation-alias Dom\Element::querySelector */ public function querySelector(string $selectors): ?Element {} /** @implementation-alias Dom\Element::querySelectorAll */ public function querySelectorAll(string $selectors): NodeList {} /** @virtual */ public ?HTMLElement $body; /** * @readonly * @virtual */ public ?HTMLElement $head; /** @virtual */ public string $title; } final class HTMLDocument extends Document { public static function createEmpty(string $encoding = "UTF-8"): HTMLDocument {} public static function createFromFile(string $path, int $options = 0, ?string $overrideEncoding = null): HTMLDocument {} public static function createFromString(string $source, int $options = 0, ?string $overrideEncoding = null): HTMLDocument {} /** @implementation-alias Dom\XMLDocument::saveXml */ public function saveXml(?Node $node = null, int $options = 0): string|false {} /** @implementation-alias DOMDocument::save */ public function saveXmlFile(string $filename, int $options = 0): int|false {} public function saveHtml(?Node $node = null): string {} public function saveHtmlFile(string $filename): int|false {} #if ZEND_DEBUG public function debugGetTemplateCount(): int {} #endif } final class XMLDocument extends Document { public static function createEmpty(string $version = "1.0", string $encoding = "UTF-8"): XMLDocument {} public static function createFromFile(string $path, int $options = 0, ?string $overrideEncoding = null): XMLDocument {} public static function createFromString(string $source, int $options = 0, ?string $overrideEncoding = null): XMLDocument {} /** * @readonly * @virtual */ public string $xmlEncoding; /** @virtual */ public bool $xmlStandalone; /** @virtual */ public string $xmlVersion; /** @virtual */ public bool $formatOutput; /** @implementation-alias DOMDocument::createEntityReference */ public function createEntityReference(string $name): EntityReference {} /** @implementation-alias DOMDocument::validate */ public function validate(): bool {} public function xinclude(int $options = 0): int {} public function saveXml(?Node $node = null, int $options = 0): string|false {} /** @implementation-alias DOMDocument::save */ public function saveXmlFile(string $filename, int $options = 0): int|false {} } /** * @not-serializable * @strict-properties */ final class TokenList implements \IteratorAggregate, \Countable { /** @implementation-alias Dom\Node::__construct */ private function __construct() {} /** * @readonly * @virtual */ public int $length; public function item(int $index): ?string {} public function contains(string $token): bool {} public function add(string ...$tokens): void {} public function remove(string ...$tokens): void {} public function toggle(string $token, ?bool $force = null): bool {} public function replace(string $token, string $newToken): bool {} public function supports(string $token): bool {} /** @virtual */ public string $value; public function count(): int {} public function getIterator(): \Iterator {} } /** * @not-serializable * @strict-properties */ readonly final class NamespaceInfo { public ?string $prefix; public ?string $namespaceURI; public Element $element; /** @implementation-alias Dom\Node::__construct */ private function __construct() {} } #ifdef LIBXML_XPATH_ENABLED /** @not-serializable */ final class XPath { /** * @readonly * @virtual */ public Document $document; /** @virtual */ public bool $registerNodeNamespaces; public function __construct(Document $document, bool $registerNodeNS = true) {} public function evaluate(string $expression, ?Node $contextNode = null, bool $registerNodeNS = true): null|bool|float|string|NodeList {} public function query(string $expression, ?Node $contextNode = null, bool $registerNodeNS = true): NodeList {} /** @implementation-alias DOMXPath::registerNamespace */ public function registerNamespace(string $prefix, string $namespace): bool {} /** @implementation-alias DOMXPath::registerPhpFunctions */ public function registerPhpFunctions(string|array|null $restrict = null): void {} /** @implementation-alias DOMXPath::registerPhpFunctionNS */ public function registerPhpFunctionNS(string $namespaceURI, string $name, callable $callable): void {} /** @implementation-alias DOMXPath::quote */ public static function quote(string $str): string {} } #endif function import_simplexml(object $node): Attr|Element {} }