Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
<?php

namespace Sabberworm\CSS\Value;

> use Sabberworm\CSS\OutputFormat;
use Sabberworm\CSS\Parsing\ParserState; use Sabberworm\CSS\Parsing\SourceException;
> use Sabberworm\CSS\Parsing\UnexpectedEOFException; > use Sabberworm\CSS\Parsing\UnexpectedTokenException;
< class CSSString extends PrimitiveValue { <
> class CSSString extends PrimitiveValue > { > /** > * @var string > */
private $sString;
< public function __construct($sString, $iLineNo = 0) {
> /** > * @param string $sString > * @param int $iLineNo > */ > public function __construct($sString, $iLineNo = 0) > {
$this->sString = $sString; parent::__construct($iLineNo); }
< public static function parse(ParserState $oParserState) {
> /** > * @return CSSString > * > * @throws SourceException > * @throws UnexpectedEOFException > * @throws UnexpectedTokenException > */ > public static function parse(ParserState $oParserState) > {
$sBegin = $oParserState->peek(); $sQuote = null; if ($sBegin === "'") { $sQuote = "'"; } else if ($sBegin === '"') { $sQuote = '"'; } if ($sQuote !== null) { $oParserState->consume($sQuote); } $sResult = ""; $sContent = null; if ($sQuote === null) { // Unquoted strings end in whitespace or with braces, brackets, parentheses while (!preg_match('/[\\s{}()<>\\[\\]]/isu', $oParserState->peek())) { $sResult .= $oParserState->parseCharacter(false); } } else { while (!$oParserState->comes($sQuote)) { $sContent = $oParserState->parseCharacter(false); if ($sContent === null) {
< throw new SourceException("Non-well-formed quoted string {$oParserState->peek(3)}", $oParserState->currentLine());
> throw new SourceException( > "Non-well-formed quoted string {$oParserState->peek(3)}", > $oParserState->currentLine() > );
} $sResult .= $sContent; } $oParserState->consume($sQuote); } return new CSSString($sResult, $oParserState->currentLine()); }
< public function setString($sString) {
> /** > * @param string $sString > * > * @return void > */ > public function setString($sString) > {
$this->sString = $sString; }
< public function getString() {
> /** > * @return string > */ > public function getString() > {
return $this->sString; }
< public function __toString() { < return $this->render(new \Sabberworm\CSS\OutputFormat());
> /** > * @return string > */ > public function __toString() > { > return $this->render(new OutputFormat());
}
< public function render(\Sabberworm\CSS\OutputFormat $oOutputFormat) {
> /** > * @return string > */ > public function render(OutputFormat $oOutputFormat) > {
$sString = addslashes($this->sString); $sString = str_replace("\n", '\A', $sString); return $oOutputFormat->getStringQuotingType() . $sString . $oOutputFormat->getStringQuotingType(); }
<
}