W3cubDocs

/WordPress

WP_oEmbed::_parse_xml( string $response_body ): object|false

Parses an XML response body.

Parameters

$response_bodystringrequired

Return

object|false

Source

private function _parse_xml( $response_body ) {
	if ( ! function_exists( 'libxml_disable_entity_loader' ) ) {
		return false;
	}

	if ( PHP_VERSION_ID < 80000 ) {
		/*
		 * This function has been deprecated in PHP 8.0 because in libxml 2.9.0, external entity loading
		 * is disabled by default, so this function is no longer needed to protect against XXE attacks.
		 */
		$loader = libxml_disable_entity_loader( true );
	}

	$errors = libxml_use_internal_errors( true );

	$return = $this->_parse_xml_body( $response_body );

	libxml_use_internal_errors( $errors );

	if ( PHP_VERSION_ID < 80000 && isset( $loader ) ) {
		// phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.libxml_disable_entity_loaderDeprecated
		libxml_disable_entity_loader( $loader );
	}

	return $return;
}

Changelog

Version Description
3.0.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_oembed/_parse_xml