Обрезание, или строка которую нужно обрезать:)

FedY@

Новичок
Обрезание, или строка которую нужно обрезать:)

Мне нужно обрезать строку по 160 символов, и чтобы не тупо резало а напоследнем пробеле...
дайте пожалуйсто намёки какими функциями пользоваться!?
 

predator2

Guest
Re: Обрезание, или строка которую нужно обрезать:)

Originally posted by FedY@
Мне нужно обрезать строку по 160 символов, и чтобы не тупо резало а напоследнем пробеле...
дайте пожалуйсто намёки какими функциями пользоваться!?
Вот что первое пришло в голову
может коряво, но работает )
$st="stroka";
preg_match("/^(.{0,160}\s|.{0,161})/", $st, $matches);
$res = (strlen($st) > 160) ? substr($matches[1], 0, strlen($matches[1])-1) : $matches[1];
 

FedY@

Новичок
Спасибо всем за ответы... вот мой код:

PHP:
$i=1;
    while (strlen($msg)>0){

     if (strlen($msg)<=$maxlen) {$currmsg=$msg;$msg="";}
     else {
      $currmsg=substr($msg,0,$maxlen);
      $len=strrpos($currmsg," ");

      if ($len==0) $len=$maxlen; else $currmsg=substr($msg,0,$len);

      $msg=substr($msg,$len+1);
      $i++; // Количество сообщений
     }
кому не понятно пишите :)
 

Фанат

oncle terrible
Команда форума
мне непонятно.
зачем тут цикл?
почему не отрезать от строки 160, потом через strrpos
найти пробел и отрезать до него?
 

FedY@

Новичок
я захватил быстренько весь код, потому что сообщение которое превышает 160 то оно просто режится... а что с остальным?:( для этого нужен цыкл... думаю ФАНАТ поймёт
 

Фанат

oncle terrible
Команда форума
нет, я не понял.
цикл здесь не нужен совершенно.
ты в какую сторону отрезать хочешь? больше 160 или меньше?
 

yaniks

новичок
я так понял не больше и не меньше, а на несколько по 160 (скорее всего что-то связаное с SMS)

$newtext=wordwrap($msg, 160, "#", 1);
$alltexts=explode("#",$newtext);
 

azamat

Guest
Фанат я уже предлагал
PHP:
$str = substr($str,0,strpos($str,' ', 159))
Но ему вроде бы надо не обрезать, а нарезать.
 
Сверху