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

Reply via email to