Помощник
|
Как скрыть лишние символы в строке? |
Licoric
|
Сообщение
#1
|
||
|
|
||
|
|||
mamchyts |
26.7.2011, 20:25;
Ответить: mamchyts
Сообщение
#2
|
|
В таком случае, нужно перед отображением сделать
if(strlenght($str) > 300) { $str = strip_tags($str); $str = substr($str, 0 , 300); $str .= '<a>читать далее</>'; } echo $str; |
|
|
Licoric
|
Сообщение
#3
|
|
strip_tags
Эта функция возвращает строку str, из которой удалены HTML и PHP тэги. А если мне надо сохранить форматирование? Вставленные картинки в начале текста, шрифты жирный и курсив? Абзацы? Может это и подходит, но это не совсем в тему. |
|
|
adlic |
26.7.2011, 20:30;
Ответить: adlic
Сообщение
#4
|
|
В таком случае, нужно перед отображением сделать Лучше сначала $str = strip_tags($str);, а потом уже считать длину строки, так как теги тоже учитываются как символ. Картинки, ссылки, элементарное редактирование можно записать в исключения: [PHP]strip_tags($str, "<img>,<a>,</a>, <b>, </b>, <i>, </i>, <s>, </s>, <p>, </p>");[/PHP] |
|
|
Licoric
|
Сообщение
#5
|
|
Мне не принципиально 300 символов. Я потом это допилю. Просто хочется выводить текст красиво.
*Я хочу потом сделать так, что если число оставшихся символов меньше 200, тогда выводить текст целиком. Просто потому, что читать за "далее" 3-5 лишних слов - не удобно. Как в контакте сейчас. Там постоянно прячется за "читать далее" 2-3 слова. |
|
|
mamchyts |
26.7.2011, 20:51;
Ответить: mamchyts
Сообщение
#6
|
|
[PHP]
if(strlenght(strip_tags($str)) > 200) { $str = strip_tags($str, "<img>,<a>,</a>, <b>, </b>, <i>, </i>, <s>, </s>, <p>, </p>"); $str = substr($str, 0 , 100); $str .= '<a>читать далее</>'; } echo $str; [/PHP] |
|
|
Licoric
|
Сообщение
#7
|
|
хотелось бы что-то универсальное. Ибо тэги могут быть и другими. Ну или хотя бы еще одно решение на пхп. Мне думается, что это не совсем то...
|
|
|
alexdrob |
26.7.2011, 21:21;
Ответить: alexdrob
Сообщение
#8
|
|
ну тогда считайте открытые теги все, и закрывайте в обратном прядке который не закрыты)
|
|
|
Den1xxx |
26.7.2011, 21:30;
Ответить: Den1xxx
Сообщение
#9
|
|
ну тогда считайте открытые теги все, и закрывайте в обратном прядке который не закрыты) Кстати да - http://jehy.ru/articles/2008/10/26/php-close-open-html-tags/ [PHP]function close_dangling_tags($html){ #put all opened tags into an array preg_match_all("#<([a-z]+)( .*)?(?!/)>#iU",$html,$result); $openedtags=$result[1]; #put all closed tags into an array preg_match_all("#</([a-z]+)>#iU",$html,$result); $closedtags=$result[1]; $len_opened = count($openedtags); # all tags are closed if(count($closedtags) == $len_opened){ return $html; } $openedtags = array_reverse($openedtags); # close tags for($i=0;$i < $len_opened;$i++) { if (!in_array($openedtags[$i],$closedtags)){ $html .= '</'.$openedtags[$i].'>'; } else { unset($closedtags[array_search($openedtags[$i],$closedtags)]); } } return $html; }[/PHP] |
|
|
alexdrob |
26.7.2011, 21:33;
Ответить: alexdrob
Сообщение
#10
|
|
вот только, может и пол тега картинки отрезать :D
значит ещё вначале нужно проверить открытые < и не закрытые, и удалить а потом уже закрывать |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Большие ставки для кликов в Я.Директ. Как удешевить? | 2 | rownong27 | 1124 | 26.3.2024, 14:13 автор: knezevolk |
|
Как вы бросили работу и перешли на заработок с сайтов? | 12 | uahomka | 2297 | 25.3.2024, 6:52 автор: Skyworker |
|
Как отозвать банковский платеж фрилансеру? | 28 | metvekot | 3920 | 25.3.2024, 6:34 автор: Skyworker |
|
Как вывести деньги в Украине с заблокированного Юмани ? | 23 | freeax | 3646 | 24.3.2024, 20:55 автор: Liudmila |
|
Через какой браузер и как можно найти в кэшэ браузера видео | 10 | Room | 1943 | 23.3.2024, 7:41 автор: Room |
Текстовая версия | Сейчас: 29.3.2024, 12:43 |