File ManagerCurrent Directory: wp-content/plugins/backwpup/src/Infrastructure/XmlLinux appserver-0d5e4f1e-php-cc8da225320a42ba9b7d66cba40b1f03 6.6.123+ #1 SMP PREEMPT_DYNAMIC Wed Mar 11 09:04:28 UTC 2026 x86_64Edit File: WxrValidator.php <?php declare(strict_types=1); namespace Inpsyde\BackWPup\Infrastructure\Xml; use Inpsyde\BackWPup\Infrastructure\Xml\Exception\InvalidWxrFileException; use Inpsyde\BackWPup\Infrastructure\Xml\Exception\InvalidXmlException; final class WxrValidator { /** * The file to parse. * * @var string */ private $file; /** * Constructs a WxrValidator. * * @param string $file the file to parse */ public function __construct($file) { $this->file = $file; } /** * Validates that the file is a valid WXR file. * * @throws InvalidXmlException If the given file is not valid XML * @throws InvalidWxrFileException The file is not a valid WXR file */ public function validateWxr(): void { $internalErrors = libxml_use_internal_errors(true); try { $dom = new \DOMDocument(); $oldValue = null; if (\function_exists('libxml_disable_entity_loader') && \PHP_VERSION_ID < 80000) { $oldValue = libxml_disable_entity_loader(); } $xml = file_get_contents($this->file); if ($xml === false) { throw new InvalidXmlException(__('The XML file could not be read', 'backwpup')); } $result = $dom->loadXML($xml, LIBXML_PARSEHUGE); if ($oldValue !== null) { libxml_disable_entity_loader($oldValue); } if (!$result) { throw new InvalidXmlException(__('The provided XML is invalid', 'backwpup'), libxml_get_errors()); } $xpath = new \DOMXPath($dom); $version = $xpath->query('/rss/channel/wp:wxr_version'); if ( $version === false || $version->length === 0 || preg_match('/^\d+\.\d+$/', $version[0]->nodeValue) === 0 ) { throw new InvalidWxrFileException(__('This does not appear to be a WXR file, missing/invalid WXR version number', 'backwpup')); } } finally { libxml_use_internal_errors($internalErrors); } } } Upload File Directory Listing NameTypeSizeActions.. (Parent Directory)DirExceptionDirectory Rename | DeleteWxrValidator.phpFile2.13 KB Rename | Delete | Edit