Major refactoring cleanup: - Add new controller architecture (class-controller-*.php) - Add new settings-v2 UI (views/settings-v2/) - Add new CSS architecture (agentic-sidebar.css, tokens) - Add esbuild build pipeline (scripts/build.js, package.json) - Add composer dependencies (vendor/) - Add frontend src directory (assets/js/src/index.jsx) - Add documentation files - Remove old/obsolete files (class-settings.php, old CSS) This commits all pending changes from previous refactoring efforts.
57 lines
1.5 KiB
PHP
57 lines
1.5 KiB
PHP
<?php
|
||
|
||
/*
|
||
* This file is part of the Symfony package.
|
||
*
|
||
* (c) Fabien Potencier <fabien@symfony.com>
|
||
*
|
||
* For the full copyright and license information, please view the LICENSE
|
||
* file that was distributed with this source code.
|
||
*/
|
||
|
||
namespace Symfony\Component\HtmlSanitizer\TextSanitizer;
|
||
|
||
/**
|
||
* @internal
|
||
*/
|
||
final class StringSanitizer
|
||
{
|
||
private const REPLACEMENTS = [
|
||
// """ is shorter than """
|
||
'"' => '"',
|
||
|
||
// Fix several potential issues in how browsers interpret attribute values
|
||
'+' => '+',
|
||
'=' => '=',
|
||
'@' => '@',
|
||
'`' => '`',
|
||
|
||
// Some DB engines will transform UTF8 full-width characters with
|
||
// their classical version if the data is saved in a non-UTF8 field
|
||
'<' => '<',
|
||
'>' => '>',
|
||
'+' => '+',
|
||
'=' => '=',
|
||
'@' => '@',
|
||
'`' => '`',
|
||
];
|
||
|
||
/**
|
||
* Applies a transformation to lowercase following W3C HTML Standard.
|
||
*
|
||
* @see https://w3c.github.io/html-reference/terminology.html#case-insensitive
|
||
*/
|
||
public static function htmlLower(string $string): string
|
||
{
|
||
return strtolower($string);
|
||
}
|
||
|
||
/**
|
||
* Encodes the HTML entities in the given string for safe injection in a document's DOM.
|
||
*/
|
||
public static function encodeHtmlEntities(string $string): string
|
||
{
|
||
return strtr(htmlspecialchars($string, \ENT_QUOTES | \ENT_SUBSTITUTE, 'UTF-8'), self::REPLACEMENTS);
|
||
}
|
||
}
|