miffmedia.com

Ako ste podigli svoju verziju PHP-a na 5.3, velika verovatnoca da ce vas zadesiti par upozorenja deprecated function koja se odnose na ugradjenu funkciju ereg ili eregi.
Nije za paniku radice skripta, i uvek moze da se potisne upozorenje sa jedno @ ispred problematicne funkcije, ali ipak je bolje da se sve lepo pretrese i ispravi kako bi sve bilo u skladu sa napredkom i novim verzijama.
Najjednostavnije resenje je da se ereg zameni preg_match :

ereg('.([^.]*$)', $a, $b);

Postace:

preg_match('/.([^.]*$)/', $a, $b);


Primetice te da sa dodao  / / okolo  .([^.]*$), sto su RegEx delimitri.
Ako ste koristili eregi sto je ereg varijanta koja nije osetljiva na velika i mala slova (case-insensitive), primeticete da ne postoji pregi ekvivalentna funkcija,  jednostavno:

ereg('.([^.]*$)', $a, $b);

Postace:

preg_match('/.([^.]*$)/i', $a, $b);

Dodato je malo i posle delimitra. I sve radi po starom, stim sto preg_match okupira malo vise memorije nego ereg, ali sredice se to vec :)

5 komentara na 'Sredjivanje - ereg is deprecated - greske u PHP 5.3'

Ima jedna bitna stvar, koju nisi napomenuo: preg_match je "pohlepan", odnosno hvata najvece moguce poklapanje.

Da bi se to izbeglo, dodaje se U posle delimitera (U kao Ungreedy)/

Nisam primetio ovo ali nazalost na svom hostingu sam morao da radim downgrade php-a na 5.2.x jer se mnogo klijenata zalilo da im dosta joomla komponenti ne radi na 5.3.x :(

Ne znam za joomlu, ali najvece "nesuglasice" sa 5.2xx i 5.3xx su ove ereg i split, split treba zameniti sa explode. Inace webmasteri bi trebalo da osveze verzije joomle, WP, Drupala itd. jer do "sestice" jos malo ;)

Bas tako trebali bi osveziti joomla ili koji vec koriste. Najvise problema sa CMS se javlja kad se koriste stare verzije. Cesto vlasnik sajta i ne zna da treba da se osvezi, neko mu je uradio sajt uzeo pare i otisao...

@Dejan, to je malo poveca filozofija (uzeo pare i otisao) (: Stvar ugovora/dogovora..... zar ne?

Ostavi komentar

Komentar: