Dnes jsem se rozhodnul implementovat zkracovač URL do mého blogu. Myslel jsem, že něco takového jenom zadám do Googlu, stáhnu funkci, zařadím do algoritmu na zpracovávání komentářů.

Nic jsem ale nenašel, a tak jsem jednoduchou fci napsal. Ještě není naostro odzkoušená, ale myslím, že žádnej problém by se vyskytnout neměl.

<?php

function zkrat_anchor_odkazu ($odkaz,$maximalni_delka = 35) {

if(strlen($odkaz) > $maximalni_delka) { // pokud je dělká odkazu větší než $maximalni_delka, zkrátíme ho

$zacatek = substr($odkaz,0,$maximalni_delka-5); // použijeme jen tak dlouhý začátek, aby nám 5 znaků zbylo na zakončení
$konec = substr($odkaz,-5); // vezmeme posledních 5 znaků z URL

return $zacatek."...".$konec;


} else return $odkaz;

}

?>

4 komentáře

Neváhejte napsat k článku komentář

Nevyplňujte:

  1. 1
    Scotty

    kapl.tom<zavináč>centrumtečkacz

    Myslíš, že posledních pět znaků z odkazu je dostatečné? Když to bude soubor .html, tak posledních pět znaků bude jen koncovka (".html")...

  2. 2
    Antonín Daněk

    danek<zavináč>antonindanektečkacz

    Myslíš třeba takhle: http://www.jakpsatweb.cz/ht...azy.html ?
    Tak záleží na každým, jak si to nastaví. Uvažoval jsem, že tam dám dýlku zakončení taky jako proměnnou, ale je to natolik jednoduchá funkce, že si to každej kdyžtak zedituje.
    Ještě uvidim, jestli to tady neupravim.

    • Na komentář odpověděl(a) Scotty v komentáři #3
  3. 3
    Scotty

    kapl.tom<zavináč>centrumtečkacz


    Přesně tak jsem to myslel. Ideální by podle mě bylo, kdyby se zobrazil odkaz do prvního lomítka a pak zobrazil několik znaků před (poslední) tečkou. Nebo něco takovýho..

    • Tento komentář je reakcí na příspěvek #2, který napsal(a) Antonín Daněk
    • Na komentář odpověděl(a) Antonín Daněk v komentáři #4
  4. 4
    Antonín Daněk

    danek<zavináč>antonindanektečkacz

    Do prvního lomítka? Jenže se klidně můžou najít odkazy, který do toho prvního lomítka budou už mít víc než $maximalni_delka, a co pak? To samý s tou tečkou. Weby jako je tenhle mají poslední tečku před tld a pak už žádnou.

    Pokud bych měl psát takovou věc, tak bych tam musel zohledňovat takový mraky možných případů, že by se stejně ve výsledku objevila nějaká možnost, která by pořešená nebyla. A výsledek by nebyl nijak závratnej, podle mě by to spíš vypadalo divně. Ne ne, mě tohle stačí.

    Dřív jsem byl zastáncem toho, že když nevíš jak dál, napiš další if. Dneska vim, že čím míň ifů, tím univerzálnější a obecnější řešení. icon_smile.gif

    • Tento komentář je reakcí na příspěvek #3, který napsal(a) Scotty