Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: работа с текстом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Вездеход
Отправлено: 10 Декабря, 2008 - 08:55:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




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

т.е. например.
дан текст
$text="Текст (от лат. textus «ткань; сплетение, связь, сочетание») — упорядоченный набор предложений, обычно предназначенный для того,\n
чтобы выразить некий смысл. В более широком смысле — упорядоченный набор слов, букв и прочих символов.\n
\n
В лингвистике термин текст используется в широком значении, включая и образцы устной речи. Восприятие текста изучается в рамках\n
лингвистики текста и психолингвистики.";

тут как видно 5 строк. поэтому если у меня в параметрах прописанно только3 строки то скрипт должен будет взять из этого текста первых 2 строки а весь оставшийся текст записать в одну строку.
я хоче сделать обработку через так:
explode("\n", $text);
а полученный массив обрабатывать. но боюсь это не самый простой способ.
может кто нить че нить проще посоветует?

ps
полностью обрезать лишние строки нельзя =(

(Отредактировано автором: 10 Декабря, 2008 - 08:59:18)



-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Champion Супермодератор
Отправлено: 10 Декабря, 2008 - 09:10:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Вездеход пишет:
я хоче сделать обработку через так:
explode("\n", $text);

Так вы получите 6 строк. Потому, что есть одна пустая строка (\n\r).
Можно конечно, потом пройтись по массиву и убрать оттуда такие элементы.
Можо разбивать строку не explode, а preg_split("/[^\\n\\r]\n\r/m", $stroka) (в синтаксисе шаблона, может быть ошибся.).
А объединить все строки после третьей можно, например
$new_arr[] = array_shift($old_arr);
$new_arr[] = array_shift($old_arr);
$new_arr[] = implode('',$old_arr);

Ну и еще можно просто указать третьим параметром в preg_split цифру 3. последние 3 строки будут в 1. Только надо будет str_replce оттуда символы \n\r. И не забывайте, что в винде на концах строк стоят 13 и 10 символ а в *никсах только 13. А в маках вроде 10
(Добавление)
Ну вот, пока я писал, вы исправили)) Теперь 5 строк.
 
 Top
Вездеход
Отправлено: 10 Декабря, 2008 - 09:25:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




пасиб за помощь )
Champion пишет:
$new_arr[] = array_shift($old_arr);
$new_arr[] = array_shift($old_arr);
$new_arr[] = implode('',$old_arr);


вот этим наверно способом сделаю...
с регуляркой я вапще не дружу (

ps
а без explode видимо не обойтись. ну да ладно )

зы2.
Champion пишет:
И не забывайте, что в винде на концах строк стоят 13 и 10 символ а в *никсах только 13. А в маках вроде 10

можно поподробнее? )


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Champion Супермодератор
Отправлено: 10 Декабря, 2008 - 09:37:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Тут всё подробно Улыбка ascii символ с 10кодом это \r, с 13 - \n
 
 Top
Вездеход
Отправлено: 10 Декабря, 2008 - 09:40:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




ааа
тада ясно )
пасип


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB