2009-09-07 5 views
0

Im en utilisant la fonction eregi() pour correspondre à la chaîne, mais il donne l'erreur suivante:REG_EPAREN en php

PHP Warning: eregi() [function.eregi]: REG_EPAREN in /a/b/c/mysite/file.php on line 59, referer: xyz.com

J'utilise cette fonction ici:

if(eregi($check,$in)) 
{ 
    $titles=ucfirst(substr($desc, 0, 38)); 
} 
else 
{ 
    $titles=$title." : ".$add_desc; 
} 

$check et $in contiennent des données de type texte qui peuvent être des caractères alphanumériques ou spéciaux.

Quelle pourrait être la raison possible de cette erreur et comment la réparer?

+1

Voulez-vous réellement effectuer une vérification d'expression régulière? Si oui, d'où obtenez-vous le '$ check'? Si elle inclut des parenthèses que vous pensez correspondre en tant que littéraux, les échappez-vous correctement? – reuben

+0

@Reuben: yess je veux dire l'expression régulière ici.Imm obtenir des parenthèses dans $ vérifier et im leur échapper aussi avant de faire cette chose eregi mais toujours cette erreur vient. – developer

+0

Je vous utilisez des expressions régulières, et l'erreur vient de là, n'est pas le meilleur pour poster ici que regex? – yoda

Répondre

1

Depuis eregi signifie la mention « correspondance insensible cas expression régulière » chèque de $ doit contenir un valide regular Expression, pas seulement «données de type texte. Vous devriez probablement utiliser stristr à la place.

0

Le problème semble être que $check contient des caractères qui gâchent l'expression régulière. Si vous le pouvez, cou devrait passer aux fonctions d'expression régulière preg_* et exécuter $check à preg_quote.

if(preg_match(preg_quote($check), $in)) ...