Autor Zpráva
želva
Profil *
Mám malý problém, kdysik fungující zápisy pomocí funkcí ereg_replace již na nových verzích PHP nefungují a uvádí to, že jsou zastaralé.
Neporadíte mi prosím jestli za to existuje kvalitní náhrada? Dost často ve scriptu nahrazuji znaky nebo je naopak vymazávám a používal jsem tuto funkci ereg replace a ted je šlus :(

například tyto tři typické problémy , které tu mám:

$promena=ereg_replace( "[^0-9]", "", $_POST[promena]); // aby to pustilo v proměné jen čísla

$promena=ereg_replace( "--", "-", $promena); // aby dva posobě jdoucí znaky mínus předělalo na jeden znak mínus

$promena=ereg_replace( " ", "", $promena); // aby to vymazalo z proměné prázdné mezery.

Na starší verzi PHP to funguje a díky označení funkce ereg_replace jako zastaralou na nových verzí PHP si to již ani neškytne. Vůbec nevím čím to nahradit, abych dosahl stejného výsledku ... Díval jsem se na php.net a moc moudrý jsem z toho nebyl.

Budu vděčný za pomoc.
DarkMeni
Profil
Ano, ereg* se dá nahradit funkcemi preg*.
Například:
//Toto:
ereg("výraz",$promenna);
//By se mohlo nahradit tímto:
preg_match("/výraz/modifikátory",$promenna);
//A pro replace:
ereg_replace("výraz","nahrazení",$promenna);
//Tímto:
preg_replace("/výraz/modofikátory","nahrazení",$promenna);

Stačí si zjistit jak se má zapsat vzor, zkusim ti to trochu vysvětlit:

Oddělovač: To PHP pozná podle prvního znaku, a ten rozdělí výraz od modifikátorů (v příkladech jsem použil jako oddělovač lomítko).
Výraz: Asi mu vadit nebude když budeš používat stejné výrazy jako jsi používal u eregu
Modifikátor: A toto ti dovolí vypracování výrazu trochu modifikovat, třeba nerozlišovat velikost písmen (i), multifikovat řákdy (m), atd...

Například toto ti odstraní ty duplikované pomlčky:
preg_replace("/-+/","-",$promenna);
želva
Profil *
díky moc, funguje mi to!

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:

0