PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.17.2 4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / third-party / vendor / sabberworm / php-css-parser / src / Value / CSSString.php
wp-user-avatar / third-party / vendor / sabberworm / php-css-parser / src / Value Last commit date
CSSFunction.php 5 days ago CSSString.php 5 days ago CalcFunction.php 5 days ago CalcRuleValueList.php 5 days ago Color.php 5 days ago LineName.php 5 days ago PrimitiveValue.php 5 days ago RuleValueList.php 5 days ago Size.php 5 days ago URL.php 5 days ago Value.php 5 days ago ValueList.php 5 days ago
CSSString.php
107 lines
1 <?php
2
3 declare (strict_types=1);
4 namespace ProfilePressVendor\Sabberworm\CSS\Value;
5
6 use ProfilePressVendor\Sabberworm\CSS\OutputFormat;
7 use ProfilePressVendor\Sabberworm\CSS\Parsing\ParserState;
8 use ProfilePressVendor\Sabberworm\CSS\Parsing\SourceException;
9 use ProfilePressVendor\Sabberworm\CSS\Parsing\UnexpectedEOFException;
10 use ProfilePressVendor\Sabberworm\CSS\Parsing\UnexpectedTokenException;
11 use ProfilePressVendor\Sabberworm\CSS\ShortClassNameProvider;
12 use function ProfilePressVendor\Safe\preg_match;
13 /**
14 * This class is a wrapper for quoted strings to distinguish them from keywords.
15 *
16 * `CSSString`s always output with double quotes.
17 */
18 class CSSString extends PrimitiveValue
19 {
20 use ShortClassNameProvider;
21 /**
22 * @var string
23 */
24 private $string;
25 /**
26 * @param int<1, max>|null $lineNumber
27 */
28 public function __construct(string $string, ?int $lineNumber = null)
29 {
30 $this->string = $string;
31 parent::__construct($lineNumber);
32 }
33 /**
34 * @throws SourceException
35 * @throws UnexpectedEOFException
36 * @throws UnexpectedTokenException
37 *
38 * @internal since V8.8.0
39 */
40 public static function parse(ParserState $parserState): CSSString
41 {
42 $begin = $parserState->peek();
43 $quote = null;
44 if ($begin === "'") {
45 $quote = "'";
46 } elseif ($begin === '"') {
47 $quote = '"';
48 }
49 if ($quote !== null) {
50 $parserState->consume($quote);
51 }
52 $result = '';
53 if ($quote === null) {
54 // Unquoted strings end in whitespace or with braces, brackets, parentheses
55 while (preg_match('/[\s{}()<>\[\]]/isu', $parserState->peek()) === 0) {
56 $result .= $parserState->parseCharacter(\false);
57 }
58 } else {
59 while (!$parserState->comes($quote)) {
60 $content = $parserState->parseCharacter(\false);
61 if ($content === null) {
62 throw new SourceException("Non-well-formed quoted string {$parserState->peek(3)}", $parserState->currentLine());
63 }
64 $result .= $content;
65 }
66 $parserState->consume($quote);
67 }
68 return new CSSString($result, $parserState->currentLine());
69 }
70 public function setString(string $string): void
71 {
72 $this->string = $string;
73 }
74 public function getString(): string
75 {
76 return $this->string;
77 }
78 /**
79 * @return non-empty-string
80 */
81 public function render(OutputFormat $outputFormat): string
82 {
83 return $outputFormat->getStringQuotingType() . $this->escape($this->string, $outputFormat) . $outputFormat->getStringQuotingType();
84 }
85 /**
86 * @return array<string, bool|int|float|string|array<mixed>|null>
87 *
88 * @internal
89 */
90 public function getArrayRepresentation(): array
91 {
92 return [
93 'class' => $this->getShortClassName(),
94 // We're using the term "contents" here to make the difference to the class more clear.
95 'contents' => $this->string,
96 ];
97 }
98 private function escape(string $string, OutputFormat $outputFormat): string
99 {
100 $charactersToEscape = '\\';
101 $charactersToEscape .= $outputFormat->getStringQuotingType() === '"' ? '"' : "'";
102 $withEscapedQuotes = \addcslashes($string, $charactersToEscape);
103 $withNewlineEncoded = \str_replace("\n", '\A', $withEscapedQuotes);
104 return $withNewlineEncoded;
105 }
106 }
107