WordPress как на ладони

wp_unslash()WPSCache 3.6

Удаляет слэши из переданной строки, или из строковых элементов переданного массива или свойств объекта. Массив может быть любой вложенности.

Например, эту функцию нужно использовать при добавлении $_POST данных в БД с помощью $wpdb->insert(), т.к. $wpdb->insert() ожидает не экранированные данные, тогда как данные в $_POST всегда экранируется в WP.

Важно знать, что эта функция используется в функциях API, таких как: update_post_meta(), wp_update_post(), wp_insert_post() и т.д. Все эти функции ожидают экранированные данные. Исключение - это функции опций: update_option(), add_option().

Используйте эту функцию вместо stripslashes_deep().

Если наоборот нужно добавить слэши, используйте: wp_slash().

Основа для: acf_strlen()
1 раз — 0.000027 сек (очень быстро) | 50000 раз — 0.21 сек (очень быстро) | PHP 7.0.5, WP 4.5.2

Хуков нет.

Возвращает

Строку. Строку/Массив без экранированных слэшей.

Использование

$value = wp_unslash( $value );
$value(строка/массив) (обязательный)
Строка или массив из которых нужно удалить слэши.

Примеры

0

#1 Удаление слэшей из строки

$val = 'Жером Д\'Амброзио - неизвестный гонщик.';
$val = wp_unslash( $val );
echo $val;

// вернет:
// Жером Д'Амброзио - неизвестный гонщик.
0

#2 Удаление слэшей из элементов массива

Эта функция может быть использована вместо stripslashes_deep(). Так как это рекурсивная функция, она удалит слэши из всех массивов и вложенных в них массивов.

$arr = array(
		"Ты читал \'Человек в футляре\'?",
		array( "\'Человек в футляре\' очень интересный рассказ" )
	   );

$arr = wp_unslash( $arr );
/*
 Вернет: 
 array(
	  "Ты читал 'Человек в футляре'?",
	  array( "'Человек в футляре' очень интересный рассказ" )
 );
*/

Код wp_unslash() WPSCache 1.12.0

function wp_unslash( $value ) {
	if ( function_exists( '\\wp_unslash' ) ) {
		return \wp_unslash( $value );
	} elseif ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
		return stripslashes( $value );
	} else {
		return $value;
	}
}
3 комментария
    Войти