[PHP] regex dubbele en single quotes

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
PHP:
1
2
3
$attributes["pattern"] = 0;

$pattern[0] = preg_match('/^[a-z0-9A-Z\?\.,!;:&]{' .$attributes["min"]. ',' .$attributes["max"]. '}$/', $object);


In de bovenstaande regex krijg ik het maar NIET voor elkaar om ', \ of " te verwerken zonder dat hij een fout genereerd.
Hoe escape ik die? \ lukt niet ( [a-z0-9A-Z\'] )

ik test het zo:

PHP:
1
2
3
4
5
6
if(!$pattern[ $attributes["pattern"] ])
            {
                print $attributes["pattern"];
                die("bad pattern");

            }


weet iemand wat ik verkeerd doe? :?

ps. de $attributes zit toevallig in mijn code, maar doet niks in deze context.

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ja, ik weet wat je verkeerd doet... :9

Ik diende $object als stripslashes($object) aan te bieden,
mijn magic_quotes_gpc stond (uiteraard?) aan dus alle $_POST elementen waren all escaped.

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
Je wilt een backslash matchen:
code:
1
\


In een regexp moet je die backslash escapen:
code:
1
2
3
/\\/
of
/[\]/


in een string moet je die backslashes nog een keer escapen:
code:
1
2
3
"/\\\\/" of '/\\\\/'
of
"/[\\]/" of '/[\\]/' of '/[\]/'

[ Voor 27% gewijzigd door SuperRembo op 02-03-2005 00:07 . Reden: escapen van een \ in single-quoted string hoeft niet altijd. ]

| Toen / Nu