mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-23 01:27:36 +01:00
Coding Standards: Remove unnecessary ignore annotation in wp_kses_hair_parse()
.
It is perfectly possible to write a commented regex with layout for readability by using the `x` modifier. As per the manual: > x (`PCRE_EXTENDED`) > > If this modifier is set, whitespace data characters in the pattern are totally ignored except when escaped or inside a character class, and characters between an unescaped # outside a character class and the next newline character, inclusive, are also ignored. This is equivalent to Perl's /x modifier, and makes it possible to include commentary inside complicated patterns. > > Note, however, that this applies only to data characters. Whitespace characters may never appear within special character sequences in a pattern, for example within the sequence (?( which introduces a conditional subpattern. Reference: [https://www.php.net/manual/en/reference.pcre.pattern.modifiers.php PHP Manual: Pattern Modifiers]. This commit rewrites these two regexes to use the `x` modifier and gets rid of the unnecessary `phpcs:disable` comments. The tests in the `tests/phpunit/tests/db/dbDelta.php` file cover this change. Follow-up to [42249]. Props jrf. See #59650. Built from https://develop.svn.wordpress.org/trunk@57056 git-svn-id: http://core.svn.wordpress.org/trunk@56567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
82935cf778
commit
0768c65310
@ -1536,36 +1536,37 @@ function wp_kses_hair_parse( $attr ) {
|
|||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
// phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- don't remove regex indentation
|
|
||||||
$regex =
|
$regex =
|
||||||
'(?:'
|
'(?:
|
||||||
. '[_a-zA-Z][-_a-zA-Z0-9:.]*' // Attribute name.
|
[_a-zA-Z][-_a-zA-Z0-9:.]* # Attribute name.
|
||||||
. '|'
|
|
|
||||||
. '\[\[?[^\[\]]+\]\]?' // Shortcode in the name position implies unfiltered_html.
|
\[\[?[^\[\]]+\]\]? # Shortcode in the name position implies unfiltered_html.
|
||||||
. ')'
|
)
|
||||||
. '(?:' // Attribute value.
|
(?: # Attribute value.
|
||||||
. '\s*=\s*' // All values begin with '='.
|
\s*=\s* # All values begin with "=".
|
||||||
. '(?:'
|
(?:
|
||||||
. '"[^"]*"' // Double-quoted.
|
"[^"]*" # Double-quoted.
|
||||||
. '|'
|
|
|
||||||
. "'[^']*'" // Single-quoted.
|
\'[^\']*\' # Single-quoted.
|
||||||
. '|'
|
|
|
||||||
. '[^\s"\']+' // Non-quoted.
|
[^\s"\']+ # Non-quoted.
|
||||||
. '(?:\s|$)' // Must have a space.
|
(?:\s|$) # Must have a space.
|
||||||
. ')'
|
)
|
||||||
. '|'
|
|
|
||||||
. '(?:\s|$)' // If attribute has no value, space is required.
|
(?:\s|$) # If attribute has no value, space is required.
|
||||||
. ')'
|
)
|
||||||
. '\s*'; // Trailing space is optional except as mentioned above.
|
\s* # Trailing space is optional except as mentioned above.
|
||||||
// phpcs:enable
|
';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Although it is possible to reduce this procedure to a single regexp,
|
* Although it is possible to reduce this procedure to a single regexp,
|
||||||
* we must run that regexp twice to get exactly the expected result.
|
* we must run that regexp twice to get exactly the expected result.
|
||||||
|
*
|
||||||
|
* Note: do NOT remove the `x` modifiers as they are essential for the above regex!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$validation = "%^($regex)+$%";
|
$validation = "%^($regex)+$%x";
|
||||||
$extraction = "%$regex%";
|
$extraction = "%$regex%x";
|
||||||
|
|
||||||
if ( 1 === preg_match( $validation, $attr ) ) {
|
if ( 1 === preg_match( $validation, $attr ) ) {
|
||||||
preg_match_all( $extraction, $attr, $attrarr );
|
preg_match_all( $extraction, $attr, $attrarr );
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '6.5-alpha-57054';
|
$wp_version = '6.5-alpha-57056';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
Loading…
Reference in New Issue
Block a user