Perex článku rovnou z MySQL

Publikováno v sekci MYSQL v Pondělí 14.5.2007 - 22:19

Pokud potřebujeme z článku vypsat určitý počet znaků, většina lidí si jednodušše uřízne požadovaný počet znaků pomocí funkce substr()

To bývá kolikrát neštastné už tím, že nám může rozpůlit slovo a tento efekt nevypadá pěkně. Proto si můžeme napsat vlastní funkci Perex(), která nám chytře vrátí požadovanou délku znaků.

<?php
function Perex($text, $length = 60, $ending = "...")
{
    if (strlen($text) <= $length)
      {
        $text = $text; 
      } 
  
    else
     {
        $text  = substr($text, 0, $length);
        $pos   = strrpos($text, " ");
        $text  = substr($text, 0, $pos);
        $text .= $ending;
     }
    
    return $text;
  
}
?>

Ale i tento způsob ma nevýhodu. Musíme z databáze získat celý text, který teprve poté zkrátíme. A proto pokud nechceme konkrétní počet znaků, a spokojíme se s konkrétním počtem slov, můžeme perex získat rovnou z datábáze následujícím dotazem

SELECT SUBSTRING_INDEX( perex, ' ', 3 ) AS perex
FROM clanky

4 komentářů « Zpět


Komentáře

reagovat #1 Majkee:
15.05.07 14:26
Díky, to se hodí!
reagovat #2 Manix:
14.07.07 01:29
Ahoj, mohl by jsi prosim te uvest konkterni priklad jak ten perex vypsat z databaze. Asi hodinu jsem se o to pokousel, ale neslo mi to. Diky moc
reagovat #3 Manix:
14.07.07 01:35
Tak dobry, jeste naposledy jsem to zkusil a vyslo to :))
reagovat #4 Roman Janko: (Administrátor) admin@rjwebdesign.net
21.07.07 11:32
Tak to jsem fakt rád :-)

Přidat komentář

Nový vzkaz

* Tato pole jsou povinná, [smajlíci]

  • na jiné komentáře odkazujte pomocí odkazu reagovat
  • vaše IP adresa bude zaznamenána
  • používají se gravatary
  • můžeme si tykat
  • HTML tagy vypnuty. PHP kód se také neprovede. Pokud potřebuju přiložit ukázku vašeho kódu, použijete službu pastebin, nebo jej vložte mezi značky [code] [/code]
  • vulgární, rasistické či jinak nepřípustné komentáře budou smazány

Poslední komentáře

Rychlý kontakt

Já na sociálních sítích



Hlavní navigace


[ ↑ k obsahu ↑ ]