Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.189.2.122] |
|
Сообщ.
#1
,
|
|
|
Мне нужно разбить текст по правилу:
есть текст, длиной, скажем 100 символов (включая пробелы). Нужно выделить куски, скажем не больше 30 сомволами, но текст резать нужно по последнему проблу, который встретится в этих 30 символах |
Сообщ.
#2
,
|
|
|
регулярное выражение на ум не приходит, но можно эту проблему решить и другим способом:
<?php $text = "eta peremennaia soderzhit obrabativaemii tekst"; $maxchars = 30; //max dlina kuska teksta $lines[0] = ""; //massiv poluchivshihsa strok $linenumber = 0; //nomer tekushei obrabativaemoi stroki $words = explode(" ",$text); //razbivaetm tekst na slova foreach ($words as $oneword) { //perebiraem slova if (strlen($oneword)+strlen($lines[$linenumber]+1)<=$maxchars) { //esli dlina_slova+dlina_stroki+probel<=max_simvolov_vstoke $lines[$linenumber] .= " " . $oneword; //dobavliaem slovo k stroke } else { //v protivnom sluchae stroka perepolnena $linenumber++; //perehodim n asleduiushuiu stroku $lines[$linenumber] = $oneword; //dobavliaem slovo }; }; foreach ($lines as $line) { //vivodim na ekran che poluchilos echo $line; echo "<br>"; }; ?> |