Рассмотрим разновидность задачи по сериализации данных — мне нужно было сохранить HTML код в атрибуте контейнера, чтобы вставлять его по определенному событию в верстку.
Можно было сразу вставить кусочки HTML кода в документ и далее манипулировать видимостью контейнеров, но код содержал iframe-ы, и я не хотел чтобы содержимое загружалось вместе с основным документом.
Первая идея — это воспользоваться JSON преобразованием. Но функция json_encode лишь частично совместима с js методом JSON.parse, и на практике вы можете столкнуться с некоторыми проблемами.
Второй подход — это использование функции URL перекодировки, который у меня заработал отлично, им я поделюсь далее.
Со стороны PHP шаблона вы используете функцию urlencode:
|
|
<div class="my-container" data-htmlcode="<?php print urlencode($HTLMstring) ?>"> </div> |
Со стороны скрипта JS (+jQuery) используем следующее преобразование:
|
|
var code = jQuery('.my-container').data('htmlcode'); jQuery('.my-container') .html(decodeURIComponent(code.replace(/\+/g, ' '))); |
Т.е. кроме вызова функции decodeURIComponent нужно заменить символ + пробелами.
Данная запись опубликована в 07.08.2019 23:50 и размещена в рубрике PHP.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Июнь 20, 2017 г.
Оказывается, очень частая задача в тестовых заданиях соискателей - это поиск дубля в массиве. В зависимости от нюансов конкретного задания, могут просить:
найти все дубли или один единственный дубль;
использовать в решении самый быстрый алгоритм; ...
Читать
Сентябрь 13, 2016 г.
PHP обладает целым арсеналом работы со строками. Сделать буквы заглавными или наоборот перевести в строчные - нет ничего проще.
Базовый набор функций для работы со строками содержит такие функции как:
string strtolower ( string $string );
- ...
Читать
Декабрь 20, 2016 г.
PHP поддерживает работу с классом DOMDocument, но есть некоторые особенности, которые требуют внимания. Одна из них - это html кодирование символов, если вы не укажете в заголовке документа мета информацию о кодировке.
Рассмотрим пример:
[crayon-6ad893a859f2c499640130/] ...
Читать
Февраль 12, 2017 г.
Если при отправке запроса через CURL по https, вы получаете следующую ошибку:
[crayon-6ad893a85a0e5693408845/]
То можно отключить соответствующие проверки, выключив в опциях следующие флаги -SSL_VERIFYHOST, SSL_VERIFYPEER.
[crayon-6ad893a85a0eb400946966/] ...
Читать