|
|
|
|
$text=' Достижение данной цели зависит от многих факторов, и среди них одним из главнейших является правильно организованная система в которой;
|
здесь 134 знака с пробелами
надо получить
Достижение данной цели зависит от многих факторов, и среди них одним из главнейших является правильно организованная система
|
те обрезать до последнего слова ..которое больше 3 знаков ,но чтобы общее колличество знаков не привышало 130
помогите с регэкспом..уже голову сломал... | |
|
|
|
|
|
|
|
для: serjinio
(21.02.2009 в 20:21)
| |
<?php
function str_cut($s, $lim)
{
$s = substr($s, 0, $lim + 1);
while( !ctype_space($s[$lim]) )
$lim--;
for($i = $sp = $lim, $l = 0; $i > 0; $i--)
{
if( ctype_space($s[$i]) )
{
$sp = $i;
$l = 0;
}
else $l++;
if( $l > 3 )
return substr($s, 0, $sp);
}
}
$text = ' Достижение данной цели зависит от многих факторов, и среди них одним из главнейших является правильно организованная система в которой';
echo str_cut($text, 130);
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(21.02.2009 в 21:18)
| | Супер..огромное спасибо за помощь... | |
|
|
|
|
|
|
|
для: serjinio
(22.02.2009 в 00:06)
| | Кстати, поправьте
<?php
while( $lim >= 0 && !ctype_space($s[$lim]) )
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(22.02.2009 в 00:30)
| | Возвращаюсь к теме..прогнал много текста..все нормально ..но попался кусок какой-то заколдованный...
<?php
error_reporting(E_ALL);
function _str_cut($s, $lim)
{
$s = substr($s, 0, $lim + 1);
while( $lim >= 0 && !ctype_space($s[$lim]) )
$lim--;
for($i = $sp = $lim, $l = 0; $i > 0; $i--)
{
if( ctype_space($s[$i]) )
{
$sp = $i;
$l = 0;
}
else $l++;
if( $l > 3 )
return substr($s, 0, $sp);
}
}
$text = 'Это самая суперская статья';
echo _str_cut($text, 50);
|
Notice: Uninitialized string offset: 50 in Z:\home\site.ru\www\test\Cut_text.php on line 6
Notice: Uninitialized string offset: 49 in Z:\home\site.ru\www\test\Cut_text.php on line 6
Это самая суперская
|
уменьшаем меньше 49..
echo _str_cut($text, 48);
|
все нормально..мистика какая-то именно с этим куском текста... | |
|
|
|
|
|
|
|
для: serjinio
(23.02.2009 в 22:15)
| | ну если нету у Вас в $s столько символов, то как вычислять $s[$lim]? | |
|
|
|
|
|
|
|
для: Trianon
(23.02.2009 в 22:28)
| | намек понял..сейчас переделаю...спасибо... | |
|
|
|