Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод первых 20 символов из строки
 
 автор: AlexDF   (06.04.2012 в 16:34)   письмо автору
 
 

Предположим есть такая строка из базы:
$text = '&#189;<br />&#9788;&lt;a href=&quot;#&quot;&gt;User&lt;/a&gt; & <br />русский текст &#92;';

Необходимо после 20 символа вывести многоточие, если строка более 20 символов.
if(strlen($text)>20) echo substr($text, 0, 20)."...";

Таким образом результат не устраивает, так как при подсчете учитываются теги, а так же ASCII коды символов.
Как правильно осуществить задуманное?

  Ответить  
 
 автор: Tamplier   (06.04.2012 в 17:42)   письмо автору
 
   для: AlexDF   (06.04.2012 в 16:34)
 

Вы сами ответили на свой вопрос!

Сперва спецсимволы в обычные символы...
Затем удаляем HTML разметку...
Затем ваш пример.

  Ответить  
 
 автор: AlexDF   (09.04.2012 в 10:41)   письмо автору
 
   для: Tamplier   (06.04.2012 в 17:42)
 

Хорошо! Сначала обрабатываем функцией html_entity_decode(); затем strip_tags();
Но как быть с символами &#189;&#9825;&#9829; и т.д.?

  Ответить  
 
 автор: AlexDF   (09.04.2012 в 14:29)   письмо автору
 
   для: AlexDF   (09.04.2012 в 10:41)
 

Подскажите пожалуйста, как добиться чтобы функция strlen(); считала строку '&#189;' за один символ?

  Ответить  
 
 автор: confirm   (09.04.2012 в 18:32)   письмо автору
 
   для: AlexDF   (09.04.2012 в 14:29)
 

Надо не торопиться превращать в мнемоники спец символы при занесении их в базу, а делать это при выводе из базы.

  Ответить  
 
 автор: Роккер Руслан   (06.04.2012 в 18:19)   письмо автору
 
   для: AlexDF   (06.04.2012 в 16:34)
 

а еще если текст русский или еще какой не буржуйский язык пользуйтесь функциями многобайтовой кодировки

  Ответить  
 
 автор: AlexDF   (09.04.2012 в 10:42)   письмо автору
 
   для: Роккер Руслан   (06.04.2012 в 18:19)
 

Объясните пожалуйста зачем в данном случае нужно пользоваться функциями многобайтовой кодировки?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования