|
|
|
| Предположим есть такая строка из базы:
$text = '½<br />☼<a href="#">User</a> & <br />русский текст \';
|
Необходимо после 20 символа вывести многоточие, если строка более 20 символов.
if(strlen($text)>20) echo substr($text, 0, 20)."...";
|
Таким образом результат не устраивает, так как при подсчете учитываются теги, а так же ASCII коды символов.
Как правильно осуществить задуманное? | |
|
|
|
|
|
|
|
для: AlexDF
(06.04.2012 в 16:34)
| | Вы сами ответили на свой вопрос!
Сперва спецсимволы в обычные символы...
Затем удаляем HTML разметку...
Затем ваш пример. | |
|
|
|
|
|
|
|
для: Tamplier
(06.04.2012 в 17:42)
| | Хорошо! Сначала обрабатываем функцией html_entity_decode(); затем strip_tags();
Но как быть с символами ½♡♥ и т.д.? | |
|
|
|
|
|
|
|
для: AlexDF
(09.04.2012 в 10:41)
| | Подскажите пожалуйста, как добиться чтобы функция strlen(); считала строку '½' за один символ? | |
|
|
|
|
|
|
|
для: AlexDF
(09.04.2012 в 14:29)
| | Надо не торопиться превращать в мнемоники спец символы при занесении их в базу, а делать это при выводе из базы. | |
|
|
|
|
|
|
|
для: AlexDF
(06.04.2012 в 16:34)
| | а еще если текст русский или еще какой не буржуйский язык пользуйтесь функциями многобайтовой кодировки | |
|
|
|
|
|
|
|
для: Роккер Руслан
(06.04.2012 в 18:19)
| | Объясните пожалуйста зачем в данном случае нужно пользоваться функциями многобайтовой кодировки? | |
|
|
|