Функция WP_PARSE_LIST() │ Очистка массива или строки до разделенных значений

WP_PARSE_LIST() │ WP 5.1.0

Функция WP_PARSE_LIST() очищает массив или строку, содержащую перечисленные значения, разделенные запятыми или пробелами.

Используется в:

  • rest_sanitize_array()
  • wp_parse_id_list()

Возврат

Функция возвращает массив значений.

Применение

wp_parse_list( $input_list );

Параметры:

  • $input_list (array|string) — обязательный параметр, который представляет собой список значений.

Примеры использования

Пример 1

$str_ids = ",1  2  , foo   4 bar,   6 n /asd/asd rn !@#$ t tab";
$ids = wp_parse_list( $str_ids );

// Результат
/*
Array
(
    [0] => 1
    [1] => 2
    [2] => foo
    [3] => 4
    [4] => bar
    [5] => 6
    [6] => /asd/asd
    [7] => !@#$
    [8] => tab
)
*/

Пример 2

$str  = 'M-11, М-11 some:val «Μόσχα - Αγία Πετρούπολη», വൈശ്യി, ഗാസേൽ';
$list = wp_parse_list( $str );

// Результат
/*
Array
(
    [0] => M-11
    [1] => М-11
    [2] => some:val
    [3] => «Μόσχα
    [4] => -
    [5] => Αγία
    [6] => Πετρούπολη»
    [7] => വൈശ്യി
    [9] => ഗാസേൽ
)
*/

Пример 3

$str  = '
First line
Second
Third
';
$list = wp_parse_list( $str );

// Результат
/*
Array
(
    [0] => First
    [1] => line
    [2] => Second
    [3] => Third
)
*/

Пример с пустой строкой

Когда строка не содержит данных или является пустой:

$ids = wp_parse_list( ',' ); // array( )
$ids = wp_parse_list( '' );  // array( )
$ids = wp_parse_list( [] );  // array( )

Пример с массивом

Если ввести массив, он останется неизменным:

$arr = [ 'foo', 5, '', 'bar' ];
$parsed = wp_parse_list( $arr );

/*
Array
(
    [0] => foo
    [1] => 5
    [2] =>
    [3] => bar
)
*/

Пример 4

$str = 'cookie-policy, privacy-policy, terms-and-conditions, nutritional-page,  
campaigns/tour-virtual/,   campaigns/virtual-tasting/,  campaigns/sunsetdros21uk/, 
campaigns/sunsetdros21uk/venues/, campaigns/sunsetdros21uk/terms-and-conditions/,
campaigns/sunsetdros21scotland/,
campaigns/sunsetdros21scotland/venues/,
campaigns/sunsetdros21scotland/terms-and-conditions/,
campaigns/easyjet/instant-win/,
campaigns/surveyuk21/';

$list = wp_parse_list( $str );
print_r( $list );

/*
Array
(
    [0] => cookie-policy
    [1] => privacy-policy
    [2] => terms-and-conditions
    [3] => nutritional-page
    [4] => campaigns/tour-virtual/
    [5] => campaigns/virtual-tasting/
    [6] => campaigns/sunsetdros21uk/
    [7] => campaigns/sunsetdros21uk/venues/
    [8] => campaigns/sunsetdros21uk/terms-and-conditions/
    [9] => campaigns/sunsetdros21scotland/
    [10] => campaigns/sunsetdros21scotland/venues/
    [11] => campaigns/sunsetdros21scotland/terms-and-conditions/
    [12] => campaigns/easyjet/instant-win/
    [13] => campaigns/surveyuk21/
)
*/

Изменения

Функция добавлена начиная с версии 5.1.0.

Код функции

function wp_parse_list( $input_list ) {
    if ( ! is_array( $input_list ) ) {
        return preg_split( '/[s,]+/', $input_list, -1, PREG_SPLIT_NO_EMPTY );
    }

    // Проверяем, чтобы все элементы списка были скалярными.
    $input_list = array_filter( $input_list, 'is_scalar' );

    return $input_list;
}

Связанные функции

  • wp_parse_id_list()
  • wp_parse_slug_list()

Вспомогательные функции

  • __return_empty_array()
  • __return_empty_string()
  • __return_false()
  • __return_null()
  • __return_true()
  • __return_zero()
  • и другие.

Используйте данную функцию для обработки списков значений в вашем проекте на WordPress. Она поможет вам легко преобразовать строки в массивы и упростит работу с данными.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *