Как удалить HTML-теги и информацию сериализации php из результата MySQL без php? - PullRequest
0 голосов
/ 21 сентября 2009

Я храню массив PHP, где пары ключ => значение - это информация, используемая для создания вкладок пользовательского интерфейса jQuery на веб-сайте.

Строка, хранящаяся в базе данных MySQL, выглядит следующим образом:

a: 2: {i: 0; a: 2: {i: 1; s: 9: "Информация"; i: 2; s: 643: "

Этот раздел о foo

Lorem ipsum ... ";} i: 1; a: 2: {i: 1; s: 14:" Дополнительная информация "; i: 2; s: 465:" Lorem ipsum ... ";}}

(недопустимый сериализованный массив или html, потому что я урезал длинный контент по причинам форматирования)

Я хотел бы разрешить подачу этого контента в Sphinx (полнотекстовый индексатор) для поиска по сайту. По сути, Sphinx просто захватывает содержимое базы данных и индексирует то, что он находит, с учетом заданных вами параметров конфигурации ... Что мне интересно, так это хороший способ заставить MySQL или Sphinx вырезать информацию о сериализации и HTML теги, так что индексируется только простой текст.

Ответы [ 2 ]

1 голос
/ 24 сентября 2009

Для проблемы с Html-тегами поместите это в ваш sphinx-config: html_strip = 1

ссылка на раздел руководства html_strip

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

1 голос
/ 22 сентября 2009

Лучше всего, вероятно, прекратить хранить просто сериализованный формат PHP, добавив «текстовую» версию наряду с тем, что Sphinx может индексировать. В противном случае другой идеей будет иметь PHP-скрипт, который регулярно просматривает таблицу и создает «текстовую» версию вне диапазона с исходным HTTP-запросом, который создал записи. С unserialize () и strip_tags () в вашем распоряжении, это становится довольно тривиальной проблемой.

...