как удалить html-теги и информацию о сериализации php из результата MySQL без php?
Вопрос
Я храню массив PHP, где пары ключ=>значение представляют собой информацию, используемую для создания вкладок пользовательского интерфейса jQuery на веб-сайте.
Строка, хранящаяся в базе данных MySQL, выглядит так:
a:2:{i:0;a:2:{i:1;s:9:"Info";i:2;s:643:"<h2><strong>Этот раздел посвящен foo</strong> </h2><p><strong>Lorem ipsum ...";}i:1;a:2:{i:1;s:14:"Подробнее";i:2;s:465:"< p>Lorem ipsum ...";}}
(не действительный сериализованный массив или HTML, поскольку я обрезал длинный контент по причинам форматирования)
Я хотел бы разрешить передачу этого контента в Sphinx (полнотекстовый индексатор) для целей поиска по сайту.По сути, Sphinx просто захватывает содержимое базы данных и индексирует то, что находит, в зависимости от указанных вами параметров конфигурации...Мне интересно, есть ли хороший способ заставить MySQL или Sphinx удалять информацию о сериализации и теги html, чтобы индексировался только простой текст.
Решение
Лучше всего, вероятно, прекратить хранить только сериализованный формат PHP, добавляя версию «простого текста» рядом с тем, что Sphinx может индексировать.В противном случае другой идеей было бы иметь сценарий PHP, который регулярно сканирует таблицу и создает версию «простого текста» вне диапазона исходного HTTP-запроса, создавшего записи.Имея в своем распоряжении unserialize() и Strip_tags(), это становится довольно тривиальной проблемой.
Другие советы
Для решения проблемы Html-Tag добавьте это в конфигурацию sphinx:html_strip = 1
ссылка на раздел руководства html_strip
Я не нашел способа удалить информацию о сериализации из индекса.(Но у меня та же проблема)