Hezké URL - problém s některými znaky – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Hezké URL - problém s některými znaky – PHP – Fórum – Programujte.comHezké URL - problém s některými znaky – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Pavel Straka
~ Anonymní uživatel
8 příspěvků
5. 5. 2012   #1
-
0
-

Dobrý večer, snažím se vytvořit hezké URL adresy tak, že z výchozího řetězce odstraním diakritiku a různé paznaky. Takto:

function url($text) {
   $text = strtr($text, "áäčďéěëíµňôóöŕřšťúůüýžÁÄČĎÉĚËÍĄŇÓÖÔŘŔŠŤÚŮÜÝŽ", "aacdeeeilnooorrstuuuyzaacdeeelinooorrstuuuyz");
        
   $text = preg_replace("~[^\\pL0-9_]+~u", "-", $text);
   $text = trim($text,"-");                          
   $text = StrToLower($text);
   $text = preg_replace("~[^-a-z0-9_]+~", "", $text);
     
   return $text;
}

Můj problém: pokud je ve výchozím textu např. znak: ´ , funkce nevrátí vůbec nic. Je nějaký způsob, jak mohu stoprocentně zajistit, aby se cokoliv, co uživatel zadá, správně převedlo na text hezké URL?
Děkuji za rady.


Nahlásit jako SPAM
IP: 81.201.60.–
Reklama
Reklama
CZechBoY+4
Věrný člen
5. 5. 2012   #2
-
0
-

   

function prepis($retezec)
{
    $friendlyurl=Str_Replace(' ' ,'-',AddSlashes($retezec));
    $tbl = Array("\xc3\xa1"=>"a","\xc3\xa4"=>"a","\xc4\x8d"=>"c","\xc4\x8f"=>"d","\xc3\xa9"=>"e","\xc4\x9b"=>"e","\xc3\xad"=>"i","\xc4\xbe"=>"l","\xc4\xba"=>"l","\xc5\x88"=>"n","\xc3\xb3"=>"o","\xc3\xb6"=>"o","\xc5\x91"=>"o","\xc3\xb4"=>"o","\xc5\x99"=>"r","\xc5\x95"=>"r","\xc5\xa1"=>"s","\xc5\xa5"=>"t","\xc3\xba"=>"u","\xc5\xaf"=>"u","\xc3\xbc"=>"u","\xc5\xb1"=>"u","\xc3\xbd"=>"y","\xc5\xbe"=>"z","\xc3\x81"=>"A","\xc3\x84"=>"A","\xc4\x8c"=>"C","\xc4\x8e"=>"D","\xc3\x89"=>"E","\xc4\x9a"=>"E","\xc3\x8d"=>"I","\xc4\xbd"=>"L","\xc4\xb9"=>"L","\xc5\x87"=>"N","\xc3\x93"=>"O","\xc3\x96"=>"O","\xc5\x90"=>"O","\xc3\x94"=>"O","\xc5\x98"=>"R","\xc5\x94"=>"R","\xc5\xa0"=>"S","\xc5\xa4"=>"T","\xc3\x9a"=>"U","\xc5\xae"=>"U","\xc3\x9c"=>"U","\xc5\xb0"=>"U","\xc3\x9d"=>"Y","\xc5\xbd"=>"Z","'"=>"",",-"=>"kc");
    $url = StrTr($friendlyurl, $tbl);
    $address = StrTr ($url, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz-");
    $address = Preg_Replace ("/[^[:alpha:][:digit:]]/", "-", $address);
    $address = Trim ($address, "-");
    $address = Preg_Replace ("/[-]+/", "-", $address);
  return $address;
}

tuhle funkci jsem nějak ukradl odsud z článku a ještě z nějakejch webů a funguje docela dobře :)

http://www.testing.jabko.net/coolurl.php

Nahlásit jako SPAM
IP: 213.192.10.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 70 hostů

Podobná vlákna

Hezke URl — založil raddino

Hezké URL — založil Akimi Keita

Jak na hezké URL? — založil jAkErCZ

Problém s mezerou mezi znaky — založil Orcslayer

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý