|
|
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
Положим есть некое перечисление записываемое через запятые. АБВ,ГДЕЖ,... и так далее. При выгрузке из бд получается длинное слово и вид весь корежится. Как вставить, скажем, пробел, если не встречается пробел на протяжении 40 символов? Есть такая функция, как можно через регулярки реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 01:39 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
К слову - wordwrap - не наш вариант - он просто вставляет что хочешь каждые Х символов, без проверки. Или, скажем, как сделать запятую символом разбивки/переноса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 01:41 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
_Промешан_как сделать запятую символом разбивки/переноса? Тынц - меняйте на что хотите. _Промешан_Как вставить, скажем, пробел, если не встречается пробел на протяжении 40 символов? Есть такая функция, как можно через регулярки реализовать?Такой функции нет среди стандартных. Хотя, можно намутить что-то вроде Код: php 1. Без регулярок можно так: explode() по пробелу, в цикле пройтись по массиву с функцией преобразования, а после обратно implode() с пробелом. Сама функция преобразования обрабатывает строки длиной более 40 символов через wordwrap(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 07:36 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
_Промешан_, поставьте после каждой запятой - пробел. и ничего ломаться не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 08:56 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
r u_Промешан_, поставьте после каждой запятой - пробел. и ничего ломаться не будетА если нет универсального разделителя. Например используется и запятая и | и \ и ; и так далее? Без регулярок можно так: explode() по пробелу, в цикле пройтись по массиву с функцией преобразования, а после обратно implode() с пробелом. Сама функция преобразования обрабатывает строки длиной более 40 символов через wordwrap().А не долго ли? Всмысле быстрее никак? Такой функции нет среди стандартных. Хотя, можно намутить что-то вроде preg_replace('/([^\s]{40})/' , "$1 ", $str);Приведите пожалуйста пример для Date,Title,Text,TheString,Price,Contacts,TheBlogName,BlogTitle Благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 13:57 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
_Промешан_, $str = 'Date;Title ,Text|TheString\Price,Contacts|TheBlogName,BlogTitle'; $str = preg_replace("/\b\w/i", ' $0', $str); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 14:18 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
_Промешан_А не долго ли?А Вы проверьте. Думаю, с большим объемом текста, где длинных строк не слишком много, будет быстрее чем регулярки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:01 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
r u_Промешан_, $str = 'Date;Title ,Text|TheString\Price,Contacts|TheBlogName,BlogTitle'; $str = preg_replace("/\b\w/i", ' $0', $str); Не совсем то. Большие строки разбивает так, что html текст перестает быть таковым. А Вы проверьте. Думаю, с большим объемом текста, где длинных строк не слишком много, будет быстрее чем регулярки.У меня есть места, где большой текст, а есть где малый. почему вы так думаете что быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:51 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
Какая регулярка будет, которая бы проставляла пробелы, но миновала бы поиск в тегах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:54 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
_Промешан_почему вы так думаете что быстрее?Регулярке однозначно придется просматривать последовательно весь текст и проверять его на соответствие шаблону, независимо от того, есть меж пробелами 40 символов, или нет. В варианте с разбивкой строки в массив на составляющие нет смысла просматривать куски длиной 40 или менее символов - он и так удовлетворяет условиям. Длина строки вычисляется очень быстро. Разбивка, хоть и требует создания новой сущности (массива) с последующим копированием данных, сама по себе не слишком тяжела. Для обработки же длинных элементов используется гораздо менее ресурсожручая функция. Разумеется, это не более чем предположения, да и от исходных данных явно будет какая-то зависимость. _Промешан_но миновала бы поиск в тегахОпс! Уже не просто текст, оказывается. Что еще появится - теги различной парности (с закрывающим тегом и без), вложенные...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 17:44 |
|
||
|
Как разбить длинное слово или перенести строку (php)?
|
|||
|---|---|---|---|
|
#18+
vkle_Промешан_но миновала бы поиск в тегахОпс! Уже не просто текст, оказывается. Что еще появится - теги различной парности (с закрывающим тегом и без), вложенные...? Ну это ж не так сложно, вроде. /[<{s}]...[>{s}]/ Никак не могу запомнить регулярки. Есть прожка хорошая, называется Expresso - позволяет с регулярками работать. Но для PHP они немного отличаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 19:40 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38026214&tid=1464461]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 421ms |

| 0 / 0 |
