Preg_replace

Programovacie jazyky, rady, poradňa...
Kamosko
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 91
Registrovaný: 23 dec 2006, 16:03
Bydlisko: Nitra
Kontaktovať používateľa:

Preg_replace

Príspevok od používateľa Kamosko »

Ahojte mám problém s jednou funckou v php

Mám text, ktorý keď prejde touto funkciou tak mi odstráni znaky čťď atď. Nie však všetky s diakritikou napr. š, ú normálne idú ...

Kód: Vybrať všetko

function format_html($string){                    
   return preg_replace('/[^(\x20-\x7F)\x0A]*/','', $string);
}
Výrazom moc dobre nerozumiem takže potrebujem pomôcť. Ďakujem
dykeer
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 102
Registrovaný: 02 jan 2011, 21:21
Kontaktovať používateľa:

Re: Preg_replace

Príspevok od používateľa dykeer »

S diakritikou boli vždy problémy, preto som si napísal vlastnú funkciu na odstránenie diakritiky a istých znamienok.
Je to síce po lopate ale funguje:

Kód: Vybrať všetko

/****************************/
function odstranDiakritiku($str) 
/****************************/
{ 
   //pismena s diakritikou 
   $dia = array('á','é','í','ý','ú','ä','ô','ó','ľ','ĺ','š','č','ť','ž','ň','ď','ě','ř','ŕ','ů','ö','ü','Á','É','Í','Ý','Ú','Ä','Ô','Ó','Ľ','Ĺ','Š','Č','Ť','Ž','Ň','Ď','Ě','Ř','Ů','Ö','Ü',' ','.',',',':'); 

   //prislusne pismena bez diakritiky 
   $nodia = array('a','e','i','y','u','a','o','o','l','l','s','c','t','z','n','d','e','r','r','u','o','u','A','E','I','Y','U','A','O','O','L','L','S','C','T','Z','N','D','E','R','U','O','U','','','',''); 
    
   return str_replace($dia, $nodia, $str); 
}
Kamosko
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 91
Registrovaný: 23 dec 2006, 16:03
Bydlisko: Nitra
Kontaktovať používateľa:

Re: Preg_replace

Príspevok od používateľa Kamosko »

Hej hej, len práveže ja mám problém, že nemôžem tú diakritiku odstrániť.
dykeer napísal:S diakritikou boli vždy problémy, preto som si napísal vlastnú funkciu na odstránenie diakritiky a istých znamienok.
Je to síce po lopate ale funguje:

Kód: Vybrať všetko

/****************************/
function odstranDiakritiku($str) 
/****************************/
{ 
   //pismena s diakritikou 
   $dia = array('á','é','í','ý','ú','ä','ô','ó','ľ','ĺ','š','č','ť','ž','ň','ď','ě','ř','ŕ','ů','ö','ü','Á','É','Í','Ý','Ú','Ä','Ô','Ó','Ľ','Ĺ','Š','Č','Ť','Ž','Ň','Ď','Ě','Ř','Ů','Ö','Ü',' ','.',',',':'); 

   //prislusne pismena bez diakritiky 
   $nodia = array('a','e','i','y','u','a','o','o','l','l','s','c','t','z','n','d','e','r','r','u','o','u','A','E','I','Y','U','A','O','O','L','L','S','C','T','Z','N','D','E','R','U','O','U','','','',''); 
    
   return str_replace($dia, $nodia, $str); 
}
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Preg_replace

Príspevok od používateľa BX »

Čo to vlastne chceš? Raz chceš diakritiku odstrániť, raz nie... :?:
Kamosko
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 91
Registrovaný: 23 dec 2006, 16:03
Bydlisko: Nitra
Kontaktovať používateľa:

Re: Preg_replace

Príspevok od používateľa Kamosko »

Kde som napísal, že chcem odstrániť diakritiku? Chcem aby mi to práveže diakritiku neodstraňovalo. :)
BX napísal:Čo to vlastne chceš? Raz chceš diakritiku odstrániť, raz nie... :?:
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Preg_replace

Príspevok od používateľa BX »

Jáj, no tak keď tu hodíš funkciu bez poriadneho popisu čo chceš a domyslite si, čo tam tie hexadecimálne znaky robia a ako tú funkciu používam :roll: (btw. stále netuším, ako ju používaš)
Ak chceš pracovať s diakritikou, pracuj s diakritikou. Teraz pracuješ len s ASCII. Takže buď prejdi na UNICODE v reg. výrazoch, alebo do reg. výrazov znaky explicitne vypisuj (napr. if(preg_match("/[ľščťžýáíéúäô]/, $str); odchytí jeden znak s diakritikou - ak som vypísal všetky)
Napísať odpoveď