Autor Zpráva
M4ra
Profil *
Zdravím, na netu jsem si našel funkci která převede znaky na malá písmena bez diakritiky (pro SEO optimalizaci). Jenže z tohodle:

První pořádný článek mi vznikde tohle: prvn-podn-lnek

Vypadá to že funkce bude v pořádku, ale píš ta bude blbnout diakritika s něčím v databázi asi...

Nevíte jak by to šlo vyzpravit?
Přikládám zdroják fce:

function cool_uri($nazev)
 {	
     $nazev=strtolower($nazev);
     $co=array('ě','š','č','ř','ž','ý','á','í','é','ó','ů','ú',' ','_');
     $za_co=array('e','s','c','r','z','y','a','i','e','o','u','u','-','-');   
     
     $nazev=str_replace($co,$za_co,$nazev); 
     $string = NULL;
     $pred = NULL;
     for($i=0;$i<strlen($nazev);$i++) 
     {
         $znak = substr($nazev,$i,1);
         if($pred== $znak AND $znak == '-') 
        
         elseif((ord($znak) > 96 AND ord($znak)<123) OR (ord($znak)>47 AND ord($znak)<58) OR ord($znak)==45)
         {
           
             $string .= $znak;
             $pred = $znak;
         }
         $znak = NULL;
     }
     return $string; 
 }
Taps
Profil
M4ra
v jakém kodování máš text, který převádíš pomocí této funkce ?
M4ra
Profil *
Taps
mám vše v utf8 - samotný soubor, porovnání v databázi, upřipojení mám tohle:


mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");

nevím co ještě přidat k tomuhle...
Taps
Profil
M4ra
zkus použít místo strtolower,substr,strlen

mb_strtolower
mb_substr
mb_strlen
makčupikču
Profil *
$nazev=mb_strtolower($nazev, "UTF-8");
gmvasek
Profil
Použij řešení Jakuba Vrány - http://php.vrana.cz/vytvoreni-pratelskeho-url.php
M4ra
Profil *
díky, pomohlo ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0