preg_match, ne pas autorisé deux points de suite [^.{2,}?]

Avatar du membre
Mammouth du PHP | 1564 Messages

24 janv. 2013, 09:27

Bonjour,

je souhaite vérifier si dans une chaine il y a deux points de suite mais je n'y arrive pas, voici ma condition (qui ne fonctionne pas): [^.{2,}?]

ma preg_match entière: (je souhaite vérifier une url)
<?php
$chaine = "htTp://w.d-f..d-é.com";
if(preg_match("#^https?://[a-zA-Z0-9._-]+[^.{2,}?]\.[a-zA-Z]{2,6}$#i",$chaine))
je pense qu'un de mes point est considérer comme si je disai "tous les caractère" car le é n'est pas vue comme interdit

ViPHP
xTG
ViPHP | 7331 Messages

24 janv. 2013, 09:42

Précèdes le d'un antislash ?

Avatar du membre
Mammouth du PHP | 1564 Messages

24 janv. 2013, 10:05

rien non plus,

je suis sur une piste:
<?php
$chaine = "..";
if(preg_match("#(^\.{2,})#",$chaine)) echo "oui"; else echo "non";
sauf qu'il me faudrait l'inverse (la réponse est "oui")

ViPHP
ViPHP | 2577 Messages

24 janv. 2013, 10:35

un strpos() ne ferait pas l'affaire plus simplement ?

ViPHP
xTG
ViPHP | 7331 Messages

24 janv. 2013, 13:57

Et sinon question peut être conne mais...
La fonction de filtre elle gère ça non ?
M'étonnerai que la norme autorise le double point, donc elle doit le gérer.

ViPHP
ViPHP | 2287 Messages

27 janv. 2013, 17:14

Dans une chaîne délimitée par des double quotes ("), il faudrait non pas un, mais deux backslashs avant le point ;)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Avatar du membre
Mammouth du PHP | 1564 Messages

08 févr. 2013, 00:43

Merci pour vos réponses, je vais jeter un œil à la fonction strpos que je ne connais pas

peut ont faire confiance à la fonction de filtre ? n'est elle pas dangereuse en terme d'injection sql ? (dsl, je préfère une bonne preg_match qu'une fonction déjà toute faite où on ne sait pas vraiment qu'est ce qu'elle fait :wink: )