Paul Goepfert wrote:
I have one small problem I don't understand the preg_replace() method.
I understand the gist of what it does but I still don't fully know
what it does. I have read the entry in the php manual about this and
I am still confused about it. I've never been any good with regular
expressions.
Well, I'm not sure about what you don't understand. Anyway,
preg_replace() does "the same" as str_replace(), but using
regular-expressions instead of just strings. If you understand how do
reg-exp work, then it should have no real problem, if the reg-exp are
the problem then you better read a little more about them (the PCRE
tutorial at php.net is really good, IMHO)
Here is the function in use:
function checkPhone ($Phone)
[···]
$Phone = ereg_replace("[^0-9]", '', $Phone);
if ((strlen($Phone)) <= 14)
return
preg_replace("/[^0-9]*([0-9]{3})[^0-9]*([0-9]{3})[^0-9]*([0-9]{4}).*/",
"(\\1) \\2-\\3", $Phone);
[···]
I think my problem is mostly what is returned when preg_replace executes?
Well, what's inside parenthesis is "remembered" by preg_replace(), and
you make reference to them using "\\n" or "$n" (where "n" is a number)
in the "replace-string" (there are some exceptions, but that should do
for now) If you look carefuly, there are three expressions between
parenthesis, and these are what you're referencing via "(\\1) \\2-\\3"
Though, there's something I don't get it: in your reg-exp your ignoring
any non-numeric character, but you already got rid of them with
ereg_replace()... (??)
--
Atentamente,
J. Rafael Salazar Magaña
Innox - Innovación Inteligente
Tel: +52 (33) 3615 5348 ext. 205 / 01 800 2-SOFTWARE
http://www.innox.com.mx
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php