Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se C a C++. Zároveň využij akce až 80 % zdarma při nákupu e-learningu - více informací.
discount week 80 + hiring
Avatar
Neaktivní uživatel:17.9.2016 15:29

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.9.2016 15:29
Neaktivní uživatelský účet
Avatar
hitzoR
Člen
Avatar
hitzoR:17.9.2016 15:49

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.9.2016 15:52
 
Nahoru Odpovědět
17.9.2016 15:49
Avatar
hitzoR
Člen
Avatar
hitzoR:17.9.2016 15:53

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.9.2016 15:53
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
shaman
Člen
Avatar
Odpovídá na Neaktivní uživatel
shaman:17.9.2016 16:00

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.9.2016 16:00
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
Odpovídá na shaman
Neaktivní uživatel:17.9.2016 16:08

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
17.9.2016 16:08
Neaktivní uživatelský účet
Avatar
Jan Lupčík
Super redaktor
Avatar
Odpovídá na Neaktivní uživatel
Jan Lupčík:17.9.2016 16:31

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.9.2016 16:31
TruckersMP vývojář
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.