Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Разбить строку на подстроки по длинне


Автор: studentigor 7.7.2011, 12:45
Всем привет!
Мне нужно разбить строку, на подстроки, длинна которых будет по 95 символов.
я делал так
Код

$kol_ck = ceil(strlen($str)/95);
    $new_str = array();
    for($i=0;$i<$kol_ck;$i++){
        if(strlen($str)>95){
            $new_str[] = substr($str,$i*95,($i*95)+95);    
        }
        else{
            $new_str[] = substr($str,$i*95);
        }
    }


потому что с регулярками не дружу. Если кто-то может подсказать способ который нормально работает, подскажите. Ато этот, ничего сложного нет, но походу substr както некоректно работает, у меня появляются бока с кодировкой, а также непонятным образом дублируются части подстрок.

Автор: srt 7.7.2011, 13:11
Код

$ssst = 'текст длиннай ....';
$odes = (strlen($ssst) > 255) ? preg_replace('/\s+?(\S+)?$/', '', substr($ssst, 0, 255)) : $ssst;
echo $odes;

Автор: CruorVult 7.7.2011, 13:13
Код

preg_match_all("/.{0,95}/", $str,$matches);

Автор: srt 7.7.2011, 13:16
Код

setlocale(LC_ALL, 'ru_RU.CP1251');

Автор: studentigor 7.7.2011, 14:02
CruorVult смотрите, это получается после регулярки
Код

a:1:{i:0;a:7:{i:0;s:95:"Да-да, все давно пользуются prototype 1.6, однако порой ой Т;i:1;s:95:"ېѐڠне хочется ради тривиальных задачь
фигачить всеТ;i:2;s:95:"ܠпростым смертным целую библиотеку, а посему встала";i:3;s:95:" однажды передо мной задача сделать на Джаба 
СкриптТ;i:4;s:95:"ՠбанальный str_replace() — долго поэт бился головой об стТ;i:5;s:53:"֐ސۑì однако ответ был найден:";i:6;s:0:"";}}

а это исходный текст,
Код

Да-да, все давно пользуются prototype 1.6, однако порой ой как не хочется ради тривиальных задачь фигачить всем простым смертным целую 
библиотеку, а посему встала однажды передо мной задача сделать на Джаба Скрипте банальный str_replace() — долго поэт бился головой об 
стенку, однако ответ был найден:


тоесть буквы в местах разрыва превращяются в какието непонятные буквы.
не знаете почему так получается

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)