× Aktuálně z oboru

Vychází Game Ready ovladače pro Far Cry 5 [ clanek/2018040603-vychazi-game-ready-ovladace-pro-far-cry-5/ ]
Celá zprávička [ clanek/2018040603-vychazi-game-ready-ovladace-pro-far-cry-5/ ]

Vytváříme srozumitelné URL adresy z názvu článku

[ http://programujte.com/profil/4089-zdenek-vecera/ ]Google [ https://plus.google.com/+ZdenekVecera?rel=author ]       26. 9. 2006       48 173×

U mnoha redakčních systémů (CMS) je běžnou praxí nabízet srozumitelné URL adresy, které jsou vygenerovány z názvů článků. Přináší to nejen výhodu pro uživatele, kteří při ručním zadávání adresy zadávají srozumitelný text, ale především je to jedna z dílčích částí optimalizace (SEO) pro internetové vyhledávače.

Jak vypadá adresa vygenerovaná z názvu článku

Název článku
Zase nějaké optimalizace pro vyhledávače!
URL
http://www.nejakadomena.cz/zase-nejake-optimalizace-pro-vyhledavace
Název článku
Těšíte se na novu verzi? Samozřejmě, musíte!
URL
http://www.nejakadomena.cz/tesite-se-na-novu-verzi-samozrejme-musite

Ukázka v PHP

Existuje mnoho odlišných způsobů, jak generovat adresy z názvu článku. Přestože je více cest, většinou všechny vedou k požadovanému výsledku, tedy převedení názvu článku na adresu.

Převedení názvů na adresy nám obstará funkce, ve které budeme zpracovávat jednotlivé dílčí akce.

Nahrazení znaků s diakritikou za stejné znaky bez diakritiky

Chceme mít adresy bez diakritiky, proto musíme převést všechny znaky s diakritikou na stejné znaky bez ní. Např. ř, Ů atd.

<?php
$address = StrTr ($address, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz-");
?>

Převod všech velkých písmen na malá

Dalším požadavkem jsou malá písmena v adrese. Je to otázka vkusu, ale taky běžnou praxí používat malá písmena, tak se tomu nebudeme bránit a převedeme všechna velká písmena na malá.

<!--?php
$address = strtolower ($address);
?-->

Nahrazení mezery a všech speciálních znaků za pomlčku

Z adresy nahradíme všechny speciální znaky (otazníky, uvozovky, středníky, čárky, vykřičníky a spoustu dalších) za spojovník. Stejně tak nahradíme všechny mezery.

<?php
$re = "/[^[:alpha:][:digit:]]/";
$replacement = "-";
$address = preg_replace ($re, $replacement, $address);
?>

Úprava začátku a konce řetězce

Protože nám na začátku a na konci řetězce mohly vzniknout (z předchozích kroků) spojovníky, což je nežádoucí, odstraníme je.

<?php
$address = trim ($address, "-");
?>

Odstranění opakujícího se spojovníku

Pokud jsou v názvu článku dva vykřičníky, byly nahrazeny dvěma spojovníky. Toto je další nežádoucí efekt. Proto odstraníme všechny spojovníky, které jsou dva a více vedle sebe.

<?php
$re = "/[-]+/";
$replacement = "-";
$address = preg_replace ($re, $replacement, $address);
?>

A celé to vypadá takto…

<?php
  /** Vygenerovani pratelske URL adresy
   * @param string $title retezec, ze ktereho vygenerujeme url adresu
   * @return string $address vraceny retezec obsahujici friendly url
   * @copyright Zdenek Vecera, zdenek.vecera@gmail.com
   */
  function seo_url ($title){
    $address = $title;
    
    // nahradi znaky s diakritikou na znaky bez diakritiky
    $address = StrTr ($address, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz-");

    // prevede vsechna velka pismena na mala
    $address = strtolower ($address); 

    // nahradi pomlckou vsechny znanky, ktera nejsou pismena
    $re = "/[^[:alpha:][:digit:]]/";
    $replacement = "-";
    $address = preg_replace ($re, $replacement, $address);

    // odstrani ze zacatku a z konce retezce pomlcky
    $address = trim ($address, "-");

    // odstrani z adresy pomlcky, pokud jsou dve a vice vedle sebe
    $re = "/[-]+/";
    $replacement = "-";
    $address = preg_replace ($re, $replacement, $address);

    return $address;
  }
?>

Jak to vyzkoušet

Pro otestování stačí výše uvedenou funkci vložit do PHP souboru spolu například s následujícím zavoláním funkce:

<?php
echo seo_url ("Zase nějaké optimalizace pro vyhledávače!");
?>

Uvedenou funkci lze samozřejmě nadále optimalizovat a přizpůsobovat konkrétním požadavkům.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006092301-vytvarime-srozumitelne-url-adresy-z-nazvu-clanku/ ].