simpex
Новичок
Обрезать строку по длине не разрушая html \ bbcode
вот эта штука в принципе режет текст, правда у нее проверка отстойная на открыт тег или нет
подходит допустим для тегов
т.е. тег [link] [url]http://site.dom[/url] [/link] она спокойно порежет, без пробелов правда не порежет.
хочется чтобы в превьюхе к новости было не больше 300 символов.
все обыскал, ну нету решений никаких подобных.
PHP:
function breakLongWords($str, $maxLength, $char){
$wordEndChars = array(" ", "\n", "\r", "\f", "\v", "\0");
$count = 0;
$newStr = "";
$openTag = false;
for($i=0; $i<strlen($str); $i++){
$newStr .= $str{$i};
if($str{$i} == "<"){
$openTag = true;
continue;
}
if(($openTag) && ($str{$i} == ">")){
$openTag = false;
continue;
}
if(!$openTag){
if(in_array($str{$i}, $wordEndChars)){//If not word ending char
if($i>$maxLength){//if current word max length is reached
return $newStr;
}
}else{//Else char is word ending, reset word char count
}
}
}//End for
return $newStr;
}
$text2= 'a tset21 gfghjdfhg gfdhughruitg <font color=red>gfgnjfk</font>dfsd fhdsfuheiu <b>fdfn</b> fdsjirhfeiohfiohsd<a href="dasds">dsadsdf</a>';
echo function breakLongWords($text2, 300, $char);
подходит допустим для тегов
т.е. тег [link] [url]http://site.dom[/url] [/link] она спокойно порежет, без пробелов правда не порежет.
хочется чтобы в превьюхе к новости было не больше 300 символов.
все обыскал, ну нету решений никаких подобных.