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

wp_unslash() WP 3.6

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

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

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

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

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

Работает на основе: stripslashes_deep()
✈ 1 раз = 0.000027с = очень быстро | 50000 раз = 0.21с = очень быстро PHP 7.0.5, WP 4.5.2

Хуков нет.

Возвращает

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

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

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

Примеры

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

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

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

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

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

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

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

Код wp unslash: wp-includes/formatting.php WP 4.8.2

<?php
function wp_unslash( $value ) {
	return stripslashes_deep( $value );
}

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

Из раздела: Вспомогательные

Http://www.btbmoscow.ru/

http://www.btbmoscow.ru/ предоставление услуг по организации командировок.

btbmoscow.ru

wp_unslash 3 комментария
  • campusboy1847 cайт: wp-plus.ru

    Интересно, что быстрее работает, wp_unslash или urldecode? Эти кавычка с POST запросов достали smile

    Ответить1.4 года назад #
    • Kama4464

      Это же разные функции... Может stripslashs имел ввиду? wp_unslash для массивов удобен, можно даже так $post = wp_unslash($_POST); Скорость - пофиг, там везде мало очень...

      Ответить1.4 года назад #
      • campusboy1847 cайт: wp-plus.ru

        Разные, но можно сделать, чтобы решали одну и ту же задачу. Я на стороне JS бывает так делаю:

        var data = {
         action: 'i_save_' + pageName + '_data',
         sentData: tinyMCE.activeEditor.getContent()
        };

        А потом на PHP

        urldecode($_POST['sentData'])

        А вообще неприятная вещь есть, когда делаешь так

        var data = {
         action: 'i_save_' + pageName + '_data',
         sentData: $( this ).serialize()
        };

        и в результате $_POST['sentData'] содержит строку с данными от формы, которую приходится разбирать, вместо того, чтобы обращаться к её частям (ну ты понял, я думаю о чем я).

        Ответить1.4 года назад #

Здравствуйте, !

Ваш комментарий