Intereting Posts
Маскирование URL-адреса партнера с помощью $ post_slug после "/ go /" Сделайте больше действий после успешного входа в систему Должен использовать плагины автозагрузчика: как правильно использовать get_plugins ()? Создание настраиваемого типа сообщений для только зарегистрированных пользователей Как вставить логотип в заголовок? Получение подстраницы подстраницы – Пользовательские сообщения Добавить настраивать сообщения для редактирования ссылок на выборочно обновленные частичные Несколько полей с обратным вызовом add_settings_field Перенос из «Заполнять» CMS в WordPress Импорт сообщений в пользовательский тип сообщения на новый веб-сайт Показать приветствие приветствия над ссылками подменю? Как разрешить авторам пересматривать проекты других авторов, но не препятствовать их публикации? как отделить категории в loop.php? Как отображать изображения из базы данных? Деление на нулевую ошибку в image.php

WordPress добавляет вторую обратную косую черту, когда я использую addlashes

Я не знаю почему, но похоже, что WordPress добавляет вторую обратную косую черту, когда я использую следующие функции:

addslashes($str_with_single_quotes) addslashes(stripslashes($str_with_single_quotes)); esc_sql($str_with_single_quotes) str_replace("'", "/'", $str_with_single_quotes) 

Что я делаю, так это то, что я извлекаю данные из разных API, а затем преобразовываю эти данные в строку json, чтобы потом получить доступ к ним:

 $item_data = array( 'item_title' => __(addslashes(stripslashes($item_name))), 'product_review' => __(addslashes(stripslashes($product_review))), 'freebase_text' => __(addslashes(stripslashes($freebase_result['text']))) ); $data = json_encode($item_data); 

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

Я также попробовал preg_replace_all но у меня была фатальная ошибка, которую функция не распознала. Я также попытался использовать str_replace , esc_sql и str_replace после того, как массив был преобразован в строку json, но не повезло.

У меня закончились идеи о том, как решить эту проблему. Просто используя json_encode без обработки строк, на самом деле ничего не делает, и одиночные кавычки остаются без сохранения.

Магические кавычки также отключены:

 magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off 

Заранее спасибо.

Solutions Collecting From Web of "WordPress добавляет вторую обратную косую черту, когда я использую addlashes"

В вашем коде функция json_encode () вызывает добавление второй обратной косой черты в следующей строке.

 $data = json_encode($item_data); 

Добавьте следующий код вместо вышеуказанного кода, чтобы он заменил двойные обратные косые черты одним обратным слэшем в данных, возвращаемых функцией json_encode.

 $data = str_replace("\\\'","\\'",json_encode($item_data )); 

Посетите следующие ссылки для получения дополнительной информации о функции json_encode.

Функция json_encode

Функция json_encode Предопределенные константы

Скажите, разрешила ли она вашу проблему, или я найду другое решение для этого.