Рассмотрим разновидность задачи по сериализации данных — мне нужно было сохранить 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 2, 2017 г.
Посмотрим как можно сформировать url относительно текущего местоположения файла в php.
К примеру, у в каталоге /site-script/ находится программа на PHP и подкаталог /site-script/img, где хранятся картинки.
Требуется построить относительный ...
Читать
Январь 26, 2021 г.
На замену realpath, который работает только с реально существующими файлами и папками UNIX, а также не работающий для ссылок, я написал функцию получения канонического пути.
В документации встречается функция eio_realpath, которая требует подключения ...
Читать
Декабрь 20, 2016 г.
PHP поддерживает работу с классом DOMDocument, но есть некоторые особенности, которые требуют внимания. Одна из них - это html кодирование символов, если вы не укажете в заголовке документа мета информацию о кодировке.
Рассмотрим пример:
[crayon-6a27c1e8eeb87019533124/] ...
Читать
Ноябрь 19, 2019 г.
При создании расписаний, календарей, и т.п. могут возникать задачи вроде - получить timestamp первого дня этого месяца, или последнего дня следующего и т.п.
В лоб это решается вот так:
[crayon-6a27c1e8eed14774091521/]
Со следующим месяцем ...
Читать