One Hat Cyber Team
Your IP:
216.73.216.102
Server IP:
198.54.114.155
Server:
Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
Server Software:
LiteSpeed
PHP Version:
5.6.40
Create File
|
Create Folder
Execute
Dir :
~
/
home
/
fluxyjvi
/
public_html
/
assets
/
images
/
Edit File:
Xml.tar
Loader.php 0000644 00000006130 15107322215 0006461 0 ustar 00 <?php declare(strict_types=1); /* * This file is part of PHPUnit. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Util\Xml; use function chdir; use function dirname; use function error_reporting; use function file_get_contents; use function getcwd; use function libxml_get_errors; use function libxml_use_internal_errors; use function sprintf; use DOMDocument; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class Loader { /** * @throws XmlException */ public function loadFile(string $filename): DOMDocument { $reporting = error_reporting(0); $contents = file_get_contents($filename); error_reporting($reporting); if ($contents === false) { throw new XmlException( sprintf( 'Could not read XML from file "%s"', $filename, ), ); } return $this->load($contents, $filename); } /** * @throws XmlException */ public function load(string $actual, ?string $filename = null): DOMDocument { if ($actual === '') { if ($filename === null) { throw new XmlException('Could not parse XML from empty string'); } throw new XmlException( sprintf( 'Could not parse XML from empty file "%s"', $filename, ), ); } $document = new DOMDocument; $document->preserveWhiteSpace = false; $internal = libxml_use_internal_errors(true); $message = ''; $reporting = error_reporting(0); // Required for XInclude if ($filename !== null) { // Required for XInclude on Windows if (PHP_OS_FAMILY === 'Windows') { $cwd = getcwd(); @chdir(dirname($filename)); } $document->documentURI = $filename; } $loaded = $document->loadXML($actual); if ($filename !== null) { $document->xinclude(); } foreach (libxml_get_errors() as $error) { $message .= "\n" . $error->message; } libxml_use_internal_errors($internal); error_reporting($reporting); if (isset($cwd)) { @chdir($cwd); } if ($loaded === false || $message !== '') { if ($filename !== null) { throw new XmlException( sprintf( 'Could not load "%s"%s', $filename, $message !== '' ? ":\n" . $message : '', ), ); } if ($message === '') { $message = 'Could not load XML for unknown reason'; } throw new XmlException($message); } return $document; } } Xml.php 0000644 00000004051 15107322216 0006014 0 ustar 00 <?php declare(strict_types=1); /* * This file is part of PHPUnit. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Util; use const ENT_QUOTES; use function htmlspecialchars; use function mb_convert_encoding; use function ord; use function preg_replace; use function strlen; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class Xml { /** * Escapes a string for the use in XML documents. * * Any Unicode character is allowed, excluding the surrogate blocks, FFFE, * and FFFF (not even as character reference). * * @see https://www.w3.org/TR/xml/#charsets */ public static function prepareString(string $string): string { return preg_replace( '/[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]/', '', htmlspecialchars( self::convertToUtf8($string), ENT_QUOTES, ), ); } private static function convertToUtf8(string $string): string { if (!self::isUtf8($string)) { $string = mb_convert_encoding($string, 'UTF-8'); } return $string; } private static function isUtf8(string $string): bool { $length = strlen($string); for ($i = 0; $i < $length; $i++) { if (ord($string[$i]) < 0x80) { $n = 0; } elseif ((ord($string[$i]) & 0xE0) === 0xC0) { $n = 1; } elseif ((ord($string[$i]) & 0xF0) === 0xE0) { $n = 2; } elseif ((ord($string[$i]) & 0xF0) === 0xF0) { $n = 3; } else { return false; } for ($j = 0; $j < $n; $j++) { if ((++$i === $length) || ((ord($string[$i]) & 0xC0) !== 0x80)) { return false; } } } return true; } } FallbackNodeXmlRenderer.php 0000644 00000004256 15107406023 0011737 0 ustar 00 <?php declare(strict_types=1); /* * This file is part of the league/commonmark package. * * (c) Colin O'Dell <colinodell@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace League\CommonMark\Xml; use League\CommonMark\Node\Block\AbstractBlock; use League\CommonMark\Node\Inline\AbstractInline; use League\CommonMark\Node\Node; /** * @internal */ final class FallbackNodeXmlRenderer implements XmlNodeRendererInterface { /** * @var array<string, string> * * @psalm-allow-private-mutation */ private array $classCache = []; /** * @psalm-allow-private-mutation */ public function getXmlTagName(Node $node): string { $className = \get_class($node); if (isset($this->classCache[$className])) { return $this->classCache[$className]; } $type = $node instanceof AbstractBlock ? 'block' : 'inline'; $shortName = \strtolower((new \ReflectionClass($node))->getShortName()); return $this->classCache[$className] = \sprintf('custom_%s_%s', $type, $shortName); } /** * {@inheritDoc} */ public function getXmlAttributes(Node $node): array { $attrs = []; foreach ($node->data->export() as $k => $v) { if (self::isValueUsable($v)) { $attrs[$k] = $v; } } $reflClass = new \ReflectionClass($node); foreach ($reflClass->getProperties() as $property) { if (\in_array($property->getDeclaringClass()->getName(), [Node::class, AbstractBlock::class, AbstractInline::class], true)) { continue; } $property->setAccessible(true); $value = $property->getValue($node); if (self::isValueUsable($value)) { $attrs[$property->getName()] = $value; } } return $attrs; } /** * @param mixed $var * * @psalm-pure */ private static function isValueUsable($var): bool { return \is_string($var) || \is_int($var) || \is_float($var) || \is_bool($var); } } MarkdownToXmlConverter.php 0000644 00000003104 15107406023 0011707 0 ustar 00 <?php declare(strict_types=1); /* * This file is part of the league/commonmark package. * * (c) Colin O'Dell <colinodell@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace League\CommonMark\Xml; use League\CommonMark\ConverterInterface; use League\CommonMark\Environment\EnvironmentInterface; use League\CommonMark\Exception\CommonMarkException; use League\CommonMark\Output\RenderedContentInterface; use League\CommonMark\Parser\MarkdownParser; use League\CommonMark\Parser\MarkdownParserInterface; use League\CommonMark\Renderer\DocumentRendererInterface; final class MarkdownToXmlConverter implements ConverterInterface { /** @psalm-readonly */ private MarkdownParserInterface $parser; /** @psalm-readonly */ private DocumentRendererInterface $renderer; public function __construct(EnvironmentInterface $environment) { $this->parser = new MarkdownParser($environment); $this->renderer = new XmlRenderer($environment); } /** * Converts Markdown to XML * * @throws CommonMarkException */ public function convert(string $input): RenderedContentInterface { return $this->renderer->renderDocument($this->parser->parse($input)); } /** * Converts CommonMark to HTML. * * @see MarkdownToXmlConverter::convert() * * @throws CommonMarkException */ public function __invoke(string $input): RenderedContentInterface { return $this->convert($input); } } XmlRenderer.php 0000644 00000010106 15107406023 0007500 0 ustar 00 <?php declare(strict_types=1); namespace League\CommonMark\Xml; use League\CommonMark\Environment\EnvironmentInterface; use League\CommonMark\Event\DocumentPreRenderEvent; use League\CommonMark\Exception\InvalidArgumentException; use League\CommonMark\Node\Block\Document; use League\CommonMark\Node\Node; use League\CommonMark\Node\StringContainerInterface; use League\CommonMark\Output\RenderedContent; use League\CommonMark\Output\RenderedContentInterface; use League\CommonMark\Renderer\DocumentRendererInterface; use League\CommonMark\Util\Xml; final class XmlRenderer implements DocumentRendererInterface { private const INDENTATION = ' '; private EnvironmentInterface $environment; private XmlNodeRendererInterface $fallbackRenderer; /** @var array<class-string, XmlNodeRendererInterface> */ private array $rendererCache = []; public function __construct(EnvironmentInterface $environment) { $this->environment = $environment; $this->fallbackRenderer = new FallbackNodeXmlRenderer(); } public function renderDocument(Document $document): RenderedContentInterface { $this->environment->dispatch(new DocumentPreRenderEvent($document, 'xml')); $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $indent = 0; $walker = $document->walker(); while ($event = $walker->next()) { $node = $event->getNode(); $closeImmediately = ! $node->hasChildren(); $selfClosing = $closeImmediately && ! $node instanceof StringContainerInterface; $renderer = $this->findXmlRenderer($node); $tagName = $renderer->getXmlTagName($node); if ($event->isEntering()) { $attrs = $renderer->getXmlAttributes($node); $xml .= "\n" . \str_repeat(self::INDENTATION, $indent); $xml .= self::tag($tagName, $attrs, $selfClosing); if ($node instanceof StringContainerInterface) { $xml .= Xml::escape($node->getLiteral()); } if ($closeImmediately && ! $selfClosing) { $xml .= self::tag('/' . $tagName); } if (! $closeImmediately) { $indent++; } } elseif (! $closeImmediately) { $indent--; $xml .= "\n" . \str_repeat(self::INDENTATION, $indent); $xml .= self::tag('/' . $tagName); } } return new RenderedContent($document, $xml . "\n"); } /** * @param array<string, string|int|float|bool> $attrs */ private static function tag(string $name, array $attrs = [], bool $selfClosing = \false): string { $result = '<' . $name; foreach ($attrs as $key => $value) { $result .= \sprintf(' %s="%s"', $key, self::convertAndEscape($value)); } if ($selfClosing) { $result .= ' /'; } $result .= '>'; return $result; } /** * @param string|int|float|bool $value */ private static function convertAndEscape($value): string { if (\is_string($value)) { return Xml::escape($value); } if (\is_int($value) || \is_float($value)) { return (string) $value; } if (\is_bool($value)) { return $value ? 'true' : 'false'; } // @phpstan-ignore-next-line throw new InvalidArgumentException('$value must be a string, int, float, or bool'); } private function findXmlRenderer(Node $node): XmlNodeRendererInterface { $class = \get_class($node); if (\array_key_exists($class, $this->rendererCache)) { return $this->rendererCache[$class]; } foreach ($this->environment->getRenderersForClass($class) as $renderer) { if ($renderer instanceof XmlNodeRendererInterface) { return $this->rendererCache[$class] = $renderer; } } return $this->rendererCache[$class] = $this->fallbackRenderer; } } XmlNodeRendererInterface.php 0000644 00000001142 15107406023 0012127 0 ustar 00 <?php declare(strict_types=1); /* * This file is part of the league/commonmark package. * * (c) Colin O'Dell <colinodell@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace League\CommonMark\Xml; use League\CommonMark\Node\Node; interface XmlNodeRendererInterface { public function getXmlTagName(Node $node): string; /** * @return array<string, string|int|float|bool> * * @psalm-return array<string, scalar> */ public function getXmlAttributes(Node $node): array; }
Simpan