Re: LOL, preg_match still not working.
| From: | Beauford | Date: | Sun, 18 Feb 2007 09:16:26 +0000 |
| Subject: | Re: LOL, preg_match still not working. | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-248989@lists.php.net to get a copy of this message | ||
Mails been down since this morning (sorry, that's yesterday morning).
Anyway, not sure if this went through, so here it is again.
------
The bottom line is I want to allow everything in the expression and nothing
else. The new line does not seem to be an issue - I can put as many returns
as I want, but as soon as I add some punctuation, it falls apart.
As I said before, the ! and the period from my original example are reported
as invalid - as they are in the expression they should be valid, I'm sure
there are other examples as well, but you can see what the problem is. If I
take out the ! and period from my example and leave the new lines in, it
works fine.
Thanks
> -----Original Message-----
> From: Gregory Beaver [mailto:greg@chiaraquartet.net]
> Sent: February 17, 2007 12:21 PM
> To: Beauford
> Cc: PHP
> Subject: [PHP] Re: LOL, preg_match still not working.
>
> Beauford wrote:
> > Hi,
> >
> > I previously had some issues with preg_match and many of
> you tried to help,
> > but the same problem still exists. Here it is again, if
> anyone can explain
> > to me how to get this to work it would be great - otherwise
> I'll just remove
> > it as I just spent way to much time on this.
> >
> > Thanks
> >
> > Here's the code.
> >
> > if(empty($comment)) { $formerror['comment'] = nocomments;
> > }
> > elseif(!preg_match('|^[a-zA-Z0-9!?@#$%^&*();:_.\\\\ /\t-]+$|',
> > $comment)) {
> > $formerror['comment'] = invalidchars;
> > }
> >
> > This produces an error, which I believe it should not.
> >
> > Testing 12345. This is a test of the emergency broadcast system.
> >
> > WAKE UP!!!!!!
>
> Hi,
>
> Your sample text contains newlines. If you wish to allow newlines,
> instead of " \t" you should use the whitespace selector "\s"
>
> <?php
> $comment = 'Testing 12345. This is a test of the emergency
> broadcast system.
>
> WAKE UP!!!!!!';
> if(!preg_match('|^[a-zA-Z0-9!?@#$%^&*();:_.\\\\\s/-]+$|', $comment)) {
> echo 'oops';
> } else {
> echo 'ok';
> }
> ?>
>
> Try that code sample, and you'll see that it says "ok"
>
> What exactly are you trying to accomplish with this
> preg_match()? What
> exactly are you trying to filter out? I understand you want to
> eliminate "invalid characters" but why are they invalid? I
> ask because
> there may be a simpler way to solve the problem, if you can
> explain what
> the problem is.
>
> Thanks,
> Greg
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>