Re: preg_match() returns false but no documentation why
| From: | Stut | Date: | Wed, 30 May 2007 20:14:11 +0000 |
| Subject: | Re: preg_match() returns false but no documentation why | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-255860@lists.php.net to get a copy of this message | ||
Jared Farrish wrote:
On 5/30/07, Richard Lynch <ceo@l-i-e.com> wrote:You need delimiters around the regex, as stated in the documentation. preg_match("/^ldap(s)?://[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/",$this->server) Although you don't need to use slashes, you can use any character you want but you must escape it in if it appears in the regex.On Wed, May 30, 2007 12:33 pm, Jared Farrish wrote:preg_match("^ldap(s)?://[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$",$this->server)You are missing the start/end delimiters is your first problem...Which ones? I've got the starter "^" and the closer "$", so what else am I missing?
It will return false on an error, such as not having matching delimiters aroung the regex. The error function may retuyrn 0, but which of the following constants is defined as 0? PREG_NO_ERROR PREG_INTERNAL_ERROR PREG_BACKTRACK_LIMIT_ERROR PREG_RECURSION_LIMIT_ERROR PREG_BAD_UTF8_ERROR -Stutwould a regex operation return false? It would return false if your string doesn't match the expression.The manual claims it will return a 0 signaling "0 matches found." And then, under "Return Values," it's says very quickly: "*preg_match()* returns *FALSE* if an error occurred." If it's not returning ANYTHING I'm assuming it's faulting, but the calling the error function returns 0 (kind've ironic, really...).