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

Форум Регулярные Выражения

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

 

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

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

тема: Что делает модификатор 's'?
 
 автор: ladan   (03.02.2012 в 16:39)   письмо автору
 
 

Напишу в этой теме...

В бд есть текст, нужно на экран выводить только первые 80 символов, а при переходе по ссылке выводить уже полный

Так вот, сделал функцией preg_replace, но корректно заработало только с символом 's' в конце шаблона

$comments_row['text'] = preg_replace("/(.{1,80}).+/s","\\1",$comments_row['text']);


Случайно его туда поставил в конец(где-то в нете видел подобное), но даже не понял что он делает этот символ.. не напомните? :)

  Ответить  
 
 автор: cheops   (03.02.2012 в 16:55)   письмо автору
 
   для: ladan   (03.02.2012 в 16:39)
 

Он включает режим, когда регулярное выражение работает с несколькими строками, а не с одной. Этот режим нужно всегда включать, когда у вас в исходной строке есть переводы строк и регулярное выражение должно искать соответствие сразу по нескольким строкам.

  Ответить  
 
 автор: ladan   (03.02.2012 в 17:37)   письмо автору
 
   для: cheops   (03.02.2012 в 16:55)
 

ясно.. а что такое "переводы строк?"

получается эти круглые скобки в шаблоне, делят строку на несколько строк?
preg_replace("/(.{1,5}).+/s","\\1","Шел медведь в лес за ягодами")

  Ответить  
 
 автор: cheops   (03.02.2012 в 17:44)   письмо автору
 
   для: ladan   (03.02.2012 в 17:37)
 

Нет, имеется в виду, строка "Шел медведь в лес за ягодами" вот она без переводов строк
Шел медведь в лес за ягодами
а вот с переводами
Шел медведь 
в лес 
за ягодами
без 's' вы работаете фактически с тремя подстроками "Шел медведь", "в лес " и "за ягодами", а не с единой строкой "Шел медведь в лес за ягодами".

  Ответить  
 
 автор: ladan   (03.02.2012 в 17:51)   письмо автору
 
   для: cheops   (03.02.2012 в 17:44)
 

все ясно спс :)

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

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