Forum Webscript.Ru
		Программирование => PHP => Тема начата:  от 06 Ноября 2001, 11:40:09
		
			
			- 
				Здраствуйте!
 
 nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
 Дизайн от такого расширяется, как с помощью регулярных выражений исправить это?
 $text=ereg_replace("([^ \\t\\n\\t]{15})[^ \\t\\n\\t]*","\\\\1",$text);
 вот так обрежется на 15 символе. А как сделать чтоб после 15 символа ставился тег
 ?
- 
				Недавно на fido7.ru.php такое решение вычитал:
 
 function break_long_words($source_text,$lng)
 {
 $regExp=\'/(\\S{\'.$lng.\',})/ei\';
 $res_text=preg_replace($regExp,"wordwrap(\'\\\\1\',$lng,\'\\n\',1)",$source_text);
 return $res_text;
 }
 
 $lng - через сколько символов ставить \\n
 $source - искомая строка
 
 можешь \\n заменить на
 , хотя с \\n тоже все нормально работает
- 
				Спасибо
			
- 
				А если нужно усложнить гдето вот так:
 1.1 Если $regExp попадает в слово:
 1.2 То нужно что бы была проверка сколько символов до конца слова, если больше 5, то ищем начало слова и если до начала слова больше 5 символов то режим там где есть?
 
 О как надуманно :)
- 
				Этот regexp для разбиения монолитного текста - то есть текста без пробелов и символов перевода строки. На простой текст с пробелами и переводами строки он вообще не реагирует.
 То есть если например есть текст :
 
 $a="Мои познания PHP начались не более месяца тому назад"
 echo break_long_words($a,20);
 
 то текст не будет изменен, потому что в нем нет фрагмента строки более 20 символов без пробелов. А если бы написал так:
 
 $a="Мои познания PHP начались не более месяца тому назад"
 echo break_long_words($a,4);
 
 то получил бы такой результат:
 Мои позн
 ания PHP нача
 лись не боле
 е меся
 ца тому наза
 д
 
 
 Если ты не понял ничего из того что я тут написал - просто поюзай эту функцию, думаю разберешься.
- 
				сенькс...
 пошел юзать....