Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2011, 13:48   #1
DubSerg2010
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 13
По умолчанию Обрезка слов начиная с n-слова

Всем добрый день!
Вот уже с самого утра ломаю голову и ничего не получаеться.
Есть код функции

function strwords($str,$words)
{
$exp_str = explode(" ",$str);
$count = count($exp_str);
for ($i=$count; $i>$words; $i--) {array_pop($exp_str);}
return implode(" ",$exp_str);

}

Вызов функции поисходит так:
echo strwords("Бла бла бла какой то текст",4)
В данном примере функция выведет "Бла бла бла какой".

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

Заранее спасибо!

Последний раз редактировалось DubSerg2010; 15.05.2011 в 14:12.
DubSerg2010 вне форума Ответить с цитированием
Старый 15.05.2011, 15:03   #2
misher
Участник клуба
 
Аватар для misher
 
Регистрация: 26.05.2010
Сообщений: 1,648
По умолчанию

Может использовать функции strstr().
Цитата:
Функция strstr() извлекает любую часть строки, которая находится после пер+
вого вхождения определенного символа, или строку внутри другой строки. В следую+
щем примере в значении переменной $whole_name (Иван Петров) функция
strstr() ищет первое вхождение символа пробела, а затем возвращает всю остав+
шуюся после него часть строки.
This world will never be What I expected (c)
misher вне форума Ответить с цитированием
Старый 15.05.2011, 16:25   #3
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

А зачем так сложно у ТС ?
Не проще ли сделать так:

PHP код:
function strwords($str,$len=0,$start=0) {
    
$exp_str explode(" ",$str);
    if (!
$len$len=count($exp_str); else $len=$len+$start;
    
$retstr '';
    for (
$i=$start;$i<$len;$i++) $retstr.=($retstr?" ":"").$exp_str[$i];
    return 
$retstr;

Слова ничанают считаться с нуля, можно переделать, всунув в нужное место $start--;
graymaster вне форума Ответить с цитированием
Старый 15.05.2011, 17:53   #4
DubSerg2010
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от graymaster Посмотреть сообщение
А зачем так сложно у ТС ?
Не проще ли сделать так:

PHP код:
function strwords($str,$len=0,$start=0) {
    
$exp_str explode(" ",$str);
    if (!
$len$len=count($exp_str); else $len=$len+$start;
    
$retstr '';
    for (
$i=$start;$i<$len;$i++) $retstr.=($retstr?" ":"").$exp_str[$i];
    return 
$retstr;

Слова ничанают считаться с нуля, можно переделать, всунув в нужное место $start--;
Супер)) Все работает отлично +1 к репутации
DubSerg2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Напечатать последовательность слов, удалив повторно входящие слова rtpn Visual C++ 4 30.12.2010 11:24
Дана строка символов, содержащая слова. Определить количество слов, последний и предпоследний символы кот RamZax Паскаль, Turbo Pascal, PascalABC.NET 2 17.06.2010 14:06
Макрос для поиска и замены слов на слова с верхним подчеркиванием salvafion Microsoft Office Word 4 07.09.2009 19:14
Умоножение двойных слов на двойные слова.. AFA Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 08.05.2009 01:39
На печать выдать новую строку в которой все слова расположены в порядке возрастание длин слов Siluet Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2008 00:12