MediaWiki REL1_35
|
A collection of static methods to play with strings. More...
Static Public Member Functions | |
static | delimiterExplode ( $startDelim, $endDelim, $separator, $subject, $nested=false) |
Explode a string, but ignore any instances of the separator inside the given start and end delimiters, which may optionally nest. | |
static | delimiterReplace ( $startDelim, $endDelim, $replace, $subject, $flags='') |
Perform an operation equivalent to preg_replace() with flags. | |
static | escapeRegexReplacement ( $string) |
Escape a string to make it suitable for inclusion in a preg_replace() replacement parameter. | |
static | explode ( $separator, $subject) |
Workalike for explode() with limited memory usage. | |
static | hungryDelimiterReplace ( $startDelim, $endDelim, $replace, $subject) |
Perform an operation equivalent to preg_replace() | |
static | isUtf8 ( $value) |
Test whether a string is valid UTF-8. | |
static | isValidPCRERegex ( $string) |
Utility function to check if the given string is a valid PCRE regex. | |
static | replaceMarkup ( $search, $replace, $text) |
More or less "markup-safe" str_replace() Ignores any instances of the separator inside <...> | |
Static Private Member Functions | |
static | delimiterReplaceCallback ( $startDelim, $endDelim, $callback, $subject, $flags='') |
Perform an operation equivalent to preg_replace_callback() | |
A collection of static methods to play with strings.
Definition at line 29 of file StringUtils.php.
|
static |
Explode a string, but ignore any instances of the separator inside the given start and end delimiters, which may optionally nest.
The delimiters are literal strings, not regular expressions.
string | $startDelim | Start delimiter |
string | $endDelim | End delimiter |
string | $separator | Separator string for the explode. |
string | $subject | Subject string to explode. |
bool | $nested | True iff the delimiters are allowed to nest. |
Definition at line 59 of file StringUtils.php.
Referenced by Parser\makeImage(), and Parser\renderImageGallery().
|
static |
Perform an operation equivalent to preg_replace()
with flags.
Matches this code:
preg_replace( "!$startDelim(.*)$endDelim!$flags", $replace, $subject );
string | $startDelim | Start delimiter regular expression |
string | $endDelim | End delimiter regular expression |
string | $replace | Replacement string. May contain $1, which will be replaced by the text between the delimiters |
string | $subject | String to search |
string | $flags | Regular expression flags |
Definition at line 248 of file StringUtils.php.
References $matches, and delimiterReplaceCallback().
Referenced by Sanitizer\normalizeCss(), CoreTagHooks\pre(), and Parser\stripSectionName().
|
staticprivate |
Perform an operation equivalent to preg_replace_callback()
Matches this code:
preg_replace_callback( "!$startDelim(.*)$endDelim!s$flags", $callback, $subject );
If the start delimiter ends with an initial substring of the end delimiter, e.g. in the case of C-style comments, the behavior differs from the model regex. In this implementation, the end must share no characters with the start, so e.g. /*\\/
is not considered to be both the start and end of a comment. /*\\/xy/*\\/
is considered to be a single comment with contents /xy/
.
The implementation of delimiterReplaceCallback() is slower than hungryDelimiterReplace() but uses far less memory. The delimiters are literal strings, not regular expressions.
string | $startDelim | Start delimiter |
string | $endDelim | End delimiter |
callable | $callback | Function to call on each match |
string | $subject | |
string | $flags | Regular expression flags |
InvalidArgumentException |
Definition at line 157 of file StringUtils.php.
Referenced by delimiterReplace(), and replaceMarkup().
|
static |
Escape a string to make it suitable for inclusion in a preg_replace() replacement parameter.
string | $string |
Definition at line 314 of file StringUtils.php.
Referenced by MovePageForm\doSubmit(), Linker\formatLinksInComment(), MovePage\moveSubpagesInternal(), MagicWord\replace(), SyncFileBackend\replaceNamePaths(), FileBackendMultiWrite\substPaths(), and FileBackendMultiWrite\unsubstPaths().
|
static |
Workalike for explode() with limited memory usage.
string | $separator | |
string | $subject |
Definition at line 326 of file StringUtils.php.
References explode().
Referenced by LanguageConverter\autoConvert(), BlockLevelPass\execute(), explode(), GenerateCollationData\generateFirstChars(), Parser\handleAllQuotes(), Parser\handleInternalLinks2(), Parser\handleTables(), hungryDelimiterReplace(), LanguageConverter\parseCachedTable(), ConverterRule\parseFlags(), and Parser\renderImageGallery().
|
static |
Perform an operation equivalent to preg_replace()
Matches this code:
preg_replace( "!$startDelim(.*?)$endDelim!", $replace, $subject );
..except that it's worst-case O(N) instead of O(N^2). Compared to delimiterReplace(), this implementation is fast but memory-hungry and inflexible. The memory requirements are such that I don't recommend using it on anything but guaranteed small chunks of text.
string | $startDelim | |
string | $endDelim | |
string | $replace | |
string | $subject |
Definition at line 118 of file StringUtils.php.
|
static |
Test whether a string is valid UTF-8.
The function check for invalid byte sequences, overlong encoding but not for different normalisations.
string | $value | String to check |
Definition at line 44 of file StringUtils.php.
Referenced by Language\checkTitleEncoding(), and LinkFilter\indexifyHost().
|
static |
Utility function to check if the given string is a valid PCRE regex.
Avoids manually calling suppressWarnings and restoreWarnings, and provides a one-line solution without the need to use .
string | $string | The string you want to check being a valid regex |
Definition at line 299 of file StringUtils.php.
|
static |
More or less "markup-safe" str_replace() Ignores any instances of the separator inside <...>
string | $search | |
string | $replace | |
string | $text |
Definition at line 268 of file StringUtils.php.
References $matches, and delimiterReplaceCallback().
Referenced by Parser\handleTables().