Avatar
BlugW
Redaktor
Avatar
BlugW:

Hoj,
nemáte někdo hotový script na čištění url od diakritiky a dalších znaku?

Mam tohle:

$url = str_replace(
    Array("á", "č", "ď", "é", "ě", "í", "ľ", "ň", "ó", "ř", "š", "ť", "ú", "ů", "ü", "ý", "ž", "Á", "Č", "Ď", "É", "Ě", "Í", "Ľ", "Ň", "Ó", "Ř", "Š", "Ť", "Ú", "Ů", "Ý", "Ž"),
    Array("a", "c", "d", "e", "e", "i", "l", "n", "o", "r", "s", "t", "u", "u", "u", "y", "z", "A", "C", "D", "E", "E", "I", "L", "N", "O", "R", "S", "T", "U", "U", "Y", "Z"), $url);
$url = str_replace(Array(" ", "_", ".", "&", "+", "/"), "-", $url);
$url = str_replace(Array("---", "--"), "-", $url);
$url = str_replace(Array("(", ")", "!", "?", ",", "\"", "'", "„", "“", "[", "]"), "", $url);
$url = strtolower($url);
return $url . '-' . time();

Ale nelíbí se mi to, jelikož pokaždé se najde nějaký znak co mi pokazí URL. Hlavně mi to blbne, když je v textu mezera, někdy jí to nahradí za "-", někdy ne. :(

Odpovědět 17. září 15:29
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
hitzoR
Člen
Avatar
hitzoR:

Co takhle použít Nette/Utils? Případně se jím inspirovat.

edit: Ikdyž teda koukám že to stejně háčky a čárky nepřevede, takže ti to je k ničemu :D

Editováno 17. září 15:52
 
Nahoru Odpovědět 17. září 15:49
Avatar
hitzoR
Člen
Avatar
hitzoR:

Ale první nahradit háčky a čárky pomocí funkce, co už máš, a pak to prohnat přes webalize by bylo asi ideální.

... sakra, co to je za blbé omezení, že můžu editovat zprávu snad jen minutu po odeslání? :D

 
Nahoru Odpovědět 17. září 15:53
Avatar
shaman
Člen
Avatar
Odpovídá na BlugW
shaman:

Ignoruj to nette/utils, je to skoro tak zle riesenie ako to tvoje. Take riesenia budu zlyhavat donekonecna pokial budes mapovat jeden znak za druhy. Nezabudni ze nemci maju dalsie znaky, greci, rusi, cinania a japonci .... maju zase ine znaky. Odporucam ti poobzerat sa po nejakej hotovej kniznici na githube a includnut ju cez composer. napr: https://github.com/…book/slugger vyzera slubne.

PS: koleso uz bolo vynajdene, tak ho predsa nebudes kodovat odznova?

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 17. září 16:00
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
BlugW
Redaktor
Avatar
Odpovídá na shaman
BlugW:

Díky, ono právě jsem projel googlem, a každé řešení co bylo označeno jako kvalitní nějak nefunguje, znaky s diakritikou to prostě převede na null.
Ten odkaz cos poslal, vypadá, že by snad i fungoval, zkusím to večer. Díky:)

Nahoru Odpovědět  +1 17. září 16:08
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
IT Man
Redaktor
Avatar
Odpovídá na BlugW
IT Man:

A co tak použít Regex při přijímání?

if (!preg_match('/a-z0-9\-/', $url, $matches))
    echo 'URL obsahuje špatné znaky.';
Nahoru Odpovědět 17. září 16:31
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.