This function eregi has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
Now what we need is to replace the eregi functions used in our old applications with some new functions that are still not depreciated...
First i will describe functionality of eregi() and then i will go for appropriate function to replace it.
eregi():
eregi — Case insensitive regular expression match
Syntax:
int eregi ( string $pattern , string $string [, array &$regs ] )
This function is identical to ereg() except that it ignores case distinction when matching alphabetic characters.
Parameters
Case insensitive regular expression.
The input string.
If matches are found for parenthesized substrings of pattern and the function is called with the third argument regs, the matches will be stored in the elements of the array regs.
$regs[1] will contain the substring which starts at the first left parenthesis; $regs[2] will contain the substring starting at the second, and so on. $regs[0] will contain a copy of the complete string matched.
return Values
Returns the length of the matched string if a match for pattern was found in string, or FALSE if no matches were found or an error occurred.
If the optional parameter regs was not passed or the length of the matched string is 0, this function returns 1.
A good alternative is to use preg_match() function
Now lets talk about preg_match
preg_match — Perform a regular expression match
Description
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int$offset = 0 ]]] )
Searches subject for a match to the regular expression given in pattern.
More details can be found at php.net http://in2.php.net/manual/en/function.preg-match.php
Now How to replace eregi with preg_match
You will need to change three things
Otherwise, the rest looks PCRE compatible (yes, that's kind of redundant =P)
|
If I have a function like this: eregi($regex, $url). How do I convert it to preg_match?
ReplyDeleteIts explained above. To make it simple
Delete1. Replace the pattern like [[:alnum:]] with PCRE equivalent(Eg: [a-z0-9])
2. Add pattern delimiters to the pattern you are using
3. Add "i" after the pattern delimiter to make it case insensitive
4. Now make it preg_match($regex, $url)