Autor | Zpráva | ||
---|---|---|---|
JSvabik Profil |
#1 · Zasláno: 29. 10. 2013, 10:25:45
Zdravím všechny PHP programátory :)
Mám problém a už je toho na mě moc ... Potřebuji pomocí funkce eregi() zjistit, zda zadaný řetězec obsahuje nebo naopak neobsahuje zadané znaky. Jde o uživatelské jméno, které může obsahovat pouze znaky [a-Z][0-9], tečku a pomlčku. Předem děkuji za všechny odpovědi, nepochopil jsem totiž, jak znaky do funkce eregi() zapsat ... |
||
Borius Profil |
JSvabik:
Funkce ‘eregi’ již není v novějších pětkových verzích PHP podporována, proto je lépe použít funkci ‘preg_match’: if (preg_match('/^[a-zA-Z0-9\.\-]+$/',$username)){…} if (preg_match('/^[a-zA-Z0-9\.\-]{3,24}$/',$username)){…} if (preg_match('/^[a-zA-Z][a-zA-Z0-9\.\-]{2,23}$/',$username)){…} |
||
JSvabik Profil |
Ano, na podtržítko jsem zapomněl, děkuji za odpověď, zkusím s tím něco udělat :)
Ale při ověřování e-mailu mi eregi() bez problému funguje ... |
||
Borius Profil |
JSvabik:
Eregi ve starších verzích PHP fungovat bude. Ale jakmile přejdeš na PHP verzi 5.3 nebo vyšší, vyhodí to chybu „…deprecated…“ a příkaz nezpracuje. Pokud je mi známo, většina současných webhostingů už obvykle 5.3 používají. Přesto, kdybys trval na eregi, bylo by to if (eregi('^[\w]+$',$username)) {…} |
||
JSvabik Profil |
Aha - jsem na WEDOSu a mám PHP 5.4, ale i přesto eregi() funguje ...
Už jsem si předělal trochu to Tvé preg_match() a je to funkční :) Takže ještě jednou díky ... |
||
Rfilip Profil |
#6 · Zasláno: 29. 10. 2013, 11:47:53
eregi zatím funguje ale máš vypnuté zobrazování chyb takže nevidíš hlášku "Deprecated: Function eregi() is deprecated in...", v budoucích verzích php bude tato funkce odstraněna
|
||
JSvabik Profil |
#7 · Zasláno: 29. 10. 2013, 12:09:59 · Upravil/a: JSvabik
Zobrazování chyb mám všude zapnuté
Ale, ok, pomůžete mi tedy, prosím, ještě upravit toto: function verify_valid_email($emailtocheck) { $eregicheck = "^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}\$"; return eregi($eregicheck, $emailtocheck); } na preg_match()? |
||
Časová prodleva: 10 let
|
0