Autor Zpráva
starburst
Profil
zdravím
potřeboval bych najít funkci, která oseká vložený řetězec o diakritiku.
proste když vložím slovo řeřicha tak aby mi to vyplivlo rericha. nemůžu to nikde najít.

a ještě bych potřeboval funkci která převede řetězec na malá písmena.

prosím jestli někdo znáte tak mi pomožte.
děkuji
cistax
Profil *
napis mi na icq: 483104828 budu tam dnes tak v 15:00 tu fci ti poslu, kdyz mi nenapises, pokusim se ji poslat sem. ok?
SwimX
Profil
starburst
malá písmena strtolower();
diakritika:
$text = str_ireplace(
  array("ě","š","č","ř","ž","ý","á","í","é","ů","ú", "ť", "ď", "ň"), 
  array("e","s","c","r","z","y","a","i","e","u","u", "t", "d", "n"), 
  $text);

pouze upozornění: před verzí PHP 5 str_irepleace nebyla (incase-sensitive - nerozlišuje velikost písmen) -> Buď vypsat totéž i pro velká písmena nebo viz manuál php -> diskuse -> např:

function make_pattern(&$pat, $key) {
   $pat = '/'.preg_quote($pat, '/').'/i';
}
if(!function_exists('str_ireplace')){
    function str_ireplace($search, $replace, $subject){
        if(is_array($search)){
            array_walk($search, 'make_pattern');
        }
        else{
            $search = '/'.preg_quote($search, '/').'/i';
        }
        return preg_replace($search, $replace, $subject);
    }
} 



cistax
kterou fci chceš posílat? to je todle tak těžké napsat?
a když někdo příde s podobným problémem, tak mu taky budeš psát na icq?
starburst
Profil
to SwimX:
děkuji moc. nevím jak takovy funkce hledat když neznám název jen co by to mělo dělat.
asi to není problém sem napsat ale třeba ji nezná z paměti...

to cistax:
sem v práci takže se na ICQ nedostanu. to co napsal Swimx mi stačí. pokud znáš ještě jinou fci jak nahradit tu diaktiriku tak ji sem prosím taky napiš.

kazdopadne děkuji

starburst
SwimX
Profil
starburst
teď jsem narazil na eště trochu vylepšenou:

function iso2ascii($text){
  $convertTable = array (
      'á' => 'a', 'Á' => 'A', 'ä' => 'a', 'Ä' => 'A', 'č' => 'c',
        'Č' => 'C', 'ď' => 'd', 'Ď' => 'D', 'é' => 'e', 'É' => 'E',
        'ě' => 'e', 'Ě' => 'E', 'ë' => 'e', 'Ë' => 'E', 'í' => 'i',
        'Í' => 'I', 'ï' => 'i', 'Ï' => 'I', 'ľ' => 'l', 'Ľ' => 'L',
        'ĺ' => 'l', 'Ĺ' => 'L', 'ň' => 'n', 'Ň' => 'N', 'ń' => 'n',
        'Ń' => 'N', 'ó' => 'o', 'Ó' => 'O', 'ö' => 'o', 'Ö' => 'O',
        'ř' => 'r', 'Ř' => 'R', 'ŕ' => 'r', 'Ŕ' => 'R', 'š' => 's',
        'Š' => 'S', 'ś' => 's', 'Ś' => 'S', 'ť' => 't', 'Ť' => 'T',
        'ú' => 'u', 'Ú' => 'U', 'ů' => 'u', 'Ů' => 'U', 'ü' => 'u',
        'Ü' => 'U', 'ý' => 'y', 'Ý' => 'Y', 'ÿ' => 'y', 'Ÿ' => 'Y',
        'ž' => 'z', 'Ž' => 'Z', 'ź' => 'z', 'Ź' => 'Z',
    );
  $return = strtr($text, $convertTable);
  return $return;
}
cistax
Profil *
jj, budu tu fci sem jeste potom hodim
cistax
Profil *
function BezDk($string)
{

$string = str_replace(
array('ě','š','č','ř','ž','ý','á','í','é','ó','ů','ú','ň','ť','ď',' ','_','Ě','Š','Č','Ř','Ž','Ý','Á','Í','É','Ó','Ů','Ú','Ň','Ť','Ď'),
array('e','s','c','r','z','y','a','i','e','o','u','u','n','t','d','-','-','E','S','C','R','Z','Y','A','I','E','O','U','U','N','T','D'),
$string
);
$string = strtolower($string);

$pattern = '#([a-z0-9\-]+)#is';
$slug = '';
for($i = 0; $i < strlen($string); $i++)
{
if(preg_match($pattern,$string[$i]))
$slug .= $string[$i];
}
$url = $slug;
return $url;
}
SwimX
Profil
cistax
začátek jsem napsal už ve třetím příspěvku. V 5 jsem ji vylepšil.
Tvuj regulár kontrolující řetězec po jednom znaku je brutální, proč ho nezkontroluješ celý naráz?
blbec
Profil *
cistax: tvůj kód není odstranění diakritiky, ale špatně napsaná výrobna permalinků
Radím
Profil *
Napadá mě použít toto.

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: