2012-04-11 5 views
0

Использование базы данных показать статью с HTML символов:Codeigniter character_limiter и strip_tags

$ row-> Статья:

<div class="article"> 
As is usual also in Buenos Aires, is held in that city again the official Asterisk Advanced course with the new agenda <a href="http://www.google.com">google page</a> 
</div> 

Использование: character_limiter ($ row-> статьи, 160) короткий текст, но случается, что режет гиперссылку, которая генерирует ошибку в HTML коде, я использовал для решения функции strip_tags() ... но это показывает следующее:

<div class="article"> 
    As is usual also in Buenos Aires, is held in that city again the official Asterisk Advanced course with the new agendagoogle page... 
    </div> 

Как вы можете видеть, функция удаляет т он связывает метки, но также удаляет окружающие пространства.

Я прочитал эту статью: Problem using strip_tags in php

... но использовать регулярное выражение, которое устанавливается в 2-х элементов текста. Интересно, можете ли вы использовать что-то подобное, но с неопределенными ярлыками. Я надеюсь, что ваша помощь

ответ

0

Вам не нужно иметь то, что вы показываете в своем примере, поскольку у вас есть пробел между начальным тегом <a> и строкой. Эта проблема, с которой вы ссылаетесь, будет только проявляться, если ваши пользователи добавят <div> или аналогичные. Такие вещи, как <b><a><u> и т. Д .; будут иметь естественные пространства, когда кто-то что-то наберет.

Что вам нужно сделать, это следующее:

echo character_limiter(strip_tags($row->article), 160); 
  1. strip_tags первый
  2. ограничивают символы второго.

Не беспокойтесь о нечетном «пространстве» вопросе, это будет результатом человеческой ошибки в любом случае, если они не оставляют пространство между чем-то вроде the brown fox<a href="#">jumps over</a> the..

Альтернативы HTML является также использовать уценки код (то, что вы используете на SO для ввода вопросов/ответов). IT очень очищается ИМХО.

+0

на моем сайте, просто используйте character_limiter (strip_tags (статья $ row->), 160); Я не думаю, что есть человеческая ошибка (в данном случае), как вы видите в первом примере, текст отделен от метки гиперссылки. – csotelo

+0

@ user1151980, в вашем примере вы не должны «strip_tags» удалять пробел перед '', это просто не произойдет, так как 'strip_tags' удаляет только теги HTML, а не пробелы перед ними. – Jakub

+0

Странно ... по какой-то причине эти строки объединены. На форуме wordpress найдено решение с использованием: preg_replace ('/ <[a-zA-Z \ /] [^>] *> /', '', $ str); перед использованием функции. – csotelo