Vytváříme srozumitelné URL adresy z názvu článku
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

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

 

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

Google       26. 9. 2006       41 823×

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.

Reklama
Reklama

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.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Zdeněk VečeřaAutor publikuje na Programujte.com a Živě.cz, zabývá se vývojem a použitelností internetových aplikací a stará se o spokojenost návštěvníků Laser Game v Brně.
Web     Twitter     Facebook     LinkedIn    

Nové články

Obrázek ke článku RAD Studio a Windows Store

RAD Studio a Windows Store

RAD Studio je první vývojové prostředí se zabudovanou podporou balení aplikací typu Win32 a Win64 pro jejich umístění a šíření prostřednictvím Windows 10 Store.

Reklama
Reklama
Obrázek ke článku Testujte na 2 400+ Android a iOS zařízení

Testujte na 2 400+ Android a iOS zařízení

V dnešní době, kdy většina softwaru pro mobilní aplikace je tvořena a distribuována průběžně, mnohdy do celého světa je třeba zajistit také průběžnou automatizaci testování mobilního softwaru. V případě mobilních aplikací pro Android a iOS začíná být problém, jak testovat na obrovském množství kombinací HW variant, rozměrů, edic operačních systémů různých výrobců v různých částech světa na reálných zařízení. Simulátory a emulátory nejsou většinou to pravé. Pokud již testuji, jak si udělat vlastní beta distribuci opravdovým reálným testerům napříč platformami?

Obrázek ke článku Funkcie main vo Windows API

Funkcie main vo Windows API

V tretej časti seriálu o Windows API budeme hovoriť o funkčných prototypoch main. Funkčný prototyp je tvorený názvom funkcie a typom signatúry, pričom sa vynecháva telo funkcie. 

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý