Ucinanie tekstu do odpowiedniej długości
Czasem spotykamy się z sytuacją, gdy chcemy w jakimś wąskim miejscu na stronie, umieścić link - jednak w taki sposób, by nie rozwalał nam całej strony, ani też nie przenosił się do następnej linijki. Rozwiązaniem może być ucinanie ciągu znaków do określonej długości. W tym celu stworzymy funkcję, która będzie robiła to za nas.
Po pierwsze musimy nazwać naszą funkcję. W tym przypadku jest to utnij($tekst,$ile) gdzie obie zmienne będą ustalane przez nas.
function utnij($tekst,$ile) {
Pierwszym zadaniem, które będzie wykonywać funkcja jest liczenie długości naszej zmiennej $tekst, która będzie przechowywać dany tekst do skrócenia. W tym celu piszemy:
$licz = strlen($tekst);
W kolejnym kroku, nasza funkcja będzie sprawdzać czy liczba znaków z naszego tekstu do skrócenia jest większa, lub równa liczbie znaków, po których nasz $tekst ma zostać ucięty (jest to zmienna $ile)...
if ($licz>=$ile) {
...i jeśli zapytanie zostaje spełnione, tekst zostaje skrócony do odpowiedniej ilości znaków, oraz na końcu dodawany jest wielokropek.
$tnij = substr($tekst,0,$ile);
$uciete = $tnij."...";
}
Jeżeli jednak liczba znaków z naszego tekstu jest mniejsza od maksymalnej jej wartości, wtedy tekst zostaje poprostu przepisany bez zmian.
else {
$uciete = $tekst;
}
Musimy jeszcze dopisać linijkę, która będzie pokazywać tekst już po obróbce.
return $uciete;
}
Na końcu pozostaje nam sprawdzenie funkcji. Pierwszą wartością jest zmienna $tekst, która musi być określona przed wywołaniem funkcji, druga wartość jest to pole, które odnosi się do zmiennej $ile i może być ustawione na dowolną ilość znaków. W naszym przypadku wynosi 20:
echo utnij($tekst,20);
Cały kod wygląda następująco:
function utnij($tekst,$ile) {
$licz = strlen($tekst);
if ($licz>=$ile) {
$tnij = substr($tekst,0,$ile);
$uciete = $tnij."...";
}
else {
$uciete = $tekst;
}
return $uciete;
}
echo utnij($tekst,20); // przykład zastosowania
Piotr 'asit' Chrobak