WP_Duotone::colord_parse_rgba_string
Parses a valid RGB[A] CSS color function/string.
Direct port of colord's parseRgbaString function.
Метод класса: WP_Duotone{}
Хуков нет.
Возвращает
Массив|null. An array of RGBA values or null if the RGB string is invalid.
Использование
$result = WP_Duotone::colord_parse_rgba_string( $input );
- $input(строка) (обязательный)
- The RGBA string to parse.
Список изменений
| С версии 6.3.0 | Введена. |
Код WP_Duotone::colord_parse_rgba_string() WP Duotone::colord parse rgba string WP 7.0.3
private static function colord_parse_rgba_string( $input ) {
// Functional syntax.
$is_match = preg_match(
'/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i',
$input,
$match
);
if ( ! $is_match ) {
// Whitespace syntax.
$is_match = preg_match(
'/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i',
$input,
$match
);
}
if ( ! $is_match ) {
return null;
}
/*
* For some reason, preg_match doesn't include empty matches at the end
* of the array, so we add them manually to make things easier later.
*/
for ( $i = 1; $i <= 8; $i++ ) {
if ( ! isset( $match[ $i ] ) ) {
$match[ $i ] = '';
}
}
if ( $match[2] !== $match[4] || $match[4] !== $match[6] ) {
return null;
}
return self::colord_clamp_rgba(
array(
'r' => (float) $match[1] / ( $match[2] ? 100 / 255 : 1 ),
'g' => (float) $match[3] / ( $match[4] ? 100 / 255 : 1 ),
'b' => (float) $match[5] / ( $match[6] ? 100 / 255 : 1 ),
'a' => '' === $match[7] ? 1 : (float) $match[7] / ( $match[8] ? 100 : 1 ),
)
);
}