юли 14th, 2009Съкращаване на текст
Здравейте, може би сте забелязали, че пускам по 1 урок на ден.
Днес обаче съм решил да прекрача това свое правило :)
Това е вторият урок за днес, като не се знае дали до вечерта няма да пусна още някой :D
А ето какво представлява и урокът.
Ако имате прекалено дълъг текст и искате на точно определено място в сайта да изкарате само част от него, значи този урок е за вас :)
Функцията, която прави това е много проста и лесна. Слагал съм обяснения по кода за да се ориентирате кое за какво е.
Така отваряте файла, в който искате да съкратите текста.
Най-отгоре някъде трябва да поставите тази функция:
<?php
function shortText($text, $words, $more)
{
$word = explode(" ", strip_tags($text)); // разделяме текста на думи и ги вкарваме в масив, като преди това махаме HTML кода чрез функцията strip_tags
$text_out = array(); // създаваме празен масив, в който ще вкарваме думите
$i=0;
while ($i < $words) // създаваме цикъл чрез който ще обходим елементите в масива
{
if (!isset($word[$i])) break; // ако няма стойност с ключ $i, спираме цикъла
if (empty($word[$i])) continue; // ако стойността с ключ $i е празна – пропупускаме я и продължаваме със следващата
$text_out[] = (strlen($word[$i]) > 30) ? substr($word[$i], 0, 30)."…" : $word[$i]; // вкарваме думата в новият масив
$i++;
}
return implode(" ", $text_out).((count($word) > $words) ? $more : ""); // извеждаме вече съкратения текст
}
?>
След като сте поставили функцията във вашият файл, лесно вече може да я използвате.
Да кажем, че вашият текст се съхранява в променлива $text.
Ето по какъв начин можем да го съкратим.
$short_text = shortText($text, 10, "…");
Тук вече ще имате променлива $short_text, която ще бъде съкратения текст.
Да обясня сега и за самата функция.
Както виждате тя има 3 аргумента. Първият е текста, който трябва да бъде съкратен.
Вторият е количеството думи, които да бъдат оставени от съкратения текст. В случая съм написал 10. Това значи, че $short_text ще съдържа първите 10 думи от променливата $text.
А последният трети аргумент е низа, който ще се появява след съкратения текст. В случая съм сложил многоточие "…", като по този начин указвам на потребителите, че следва още текст.
Вие може да го промените на това, което желаете, дори да поставите линк :)
Функцията също съкращава думи по-дълги от 30 символа.
Надявам се да съм Ви бил полезен с този код. Ако имате въпроси може да ги задавате отдолу в коментарите.
До скоро!