как удалить html-теги и информацию о сериализации php из результата MySQL без php?

StackOverflow https://stackoverflow.com/questions/1455647

  •  12-09-2019
  •  | 
  •  

Вопрос

Я храню массив 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

Я не нашел способа удалить информацию о сериализации из индекса.(Но у меня та же проблема)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top