vegeir
28.02.2004, 13:47:29
Witam,
Napisalem sobie funkcje do przycinania tekstu, chodzilo mi o to, ze chce miec tekst dlugosci 50 znakow, ale jesli 50 znak to nie spacja, to zeby wyraz zostal dokonczony i dopiero po wyrazie ucieta reszta tekstu. Funkcja dziala dobrze, tyle tylko ze jesli puszcze ja w petli, np. 30 powtorzen roznej dlugosci tekstow, to czasem strasznie zwalnia. Mozecie rzucic na nia okiem?
[php:1:1ea3ca8f9d]<?php
function strpad($string, $length, $end = '...') {
$padded_string = '';
if( strlen($string) < $length ) {
$padded_string = $string;
} else {
if( $string[$length] == chr(32) ) {
$padded_string = str_pad($string, $length+1);
} else {
for( $i=0; $i<($length); $i++ ) {
$padded_string .= $string[$i];
}
while( strpos( $string[$length], " ")===false ) {
$padded_string .= $string[$length];
$length++;
}
$padded_string .= $end;
}
}
return $padded_string;
}
?>[/php:1:1ea3ca8f9d]
wassago
28.02.2004, 13:54:33
nie lepiej uzyc tego
[php:1:97d6af7d84]<?php
$string = "Winamp is now freeware! Thanks to all who have previously registered, your support is really appreciated!";
function string_cut( $string, $cut_size )
{
$StringArray = explode( " ", $string );
for( $i = 0; $i < $cut_size; $i++ ) {
$string_cut .= " "." $StringArray[$i]";
}
return "$string_cut"."...";
}
$string = "";
echo string_cut( $string, 8 );
?>[/php:1:97d6af7d84]
przyklad z zend.com
vegeir
28.02.2004, 14:14:42
Rzeczywiscie, lepsze rozwiazanie

Dzieki za pomoc
matid
28.02.2004, 14:35:20
Jeszcze krótsze:
[php:1:e4eef99681]
<?
function skr_dane($tekst, $il_znakow)
{
if (strlen($tekst) > $il_znakow)
return substr($tekst, 0, strrpos(substr($tekst, 0, $il_znakow), " ")).' ...';
else return $tekst;
}
echo skr_dane($tekst,50);
?>
[/php:1:e4eef99681]
kwiateek
1.03.2004, 16:57:23
[manual:27523dca2e]Wordwrap[/manual:27523dca2e] nie wystarcza?
Pozdrawiam.
Cross
1.03.2004, 17:40:42
nie ponieważ wordwrap rozdzieli wyraz np. w połowie a tu chodzi o całe wyrazy , więc jeśli zdanie ma ileś tam znaków , a maksymalna ilośc znaków jaka może być kończy się w podanym wyrazie to zostawia go całego a ucina wszystko zaraz po nim. wordwrap przydaje się przy bezsensownych wpisach jak np. "hudshudshdsds" coś takiego bo wtedy rozdzieli to nie psując tabelki itp
rzseattle
1.03.2004, 18:27:08
Hmm
wordwrap ( string str [, int width [, string break [,
boolean cut])
cos mi sie wydaje ze ktos lepiej powinien czytac manuala
Cross
1.03.2004, 21:32:30
aaa faktycznie

dawno nie czytałem manuala

, przepraszam za to iż odrobinke wprowadziłem w błąd
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.