Compilation failed: nothing to repeat at offset 0 [Résolu]

Messages postés
39
Date d'inscription
mardi 15 mars 2005
Dernière intervention
31 juillet 2006
- - Dernière réponse : IvanTheBlackDog
Messages postés
39
Date d'inscription
mardi 15 mars 2005
Dernière intervention
31 juillet 2006
- 31 juil. 2006 à 11:29
Salut tout le monde,

J'ai fais un script dans lequel j'utilise la fonction "preg_replace()", mais il me fait une erreur.

Code :

$search = array([mailto:'@â@' '@â@'], [mailto:'@ä@' '@ä@'], [mailto:'@à@' '@à@'], [mailto:'@Â@' '@Â@'], [mailto:'@Ä@' '@Ä@'],  [mailto:'@ç@' '@ç@'], [mailto:'@é@' '@é@'], [mailto:'@ë@' '@ë@'], [mailto:'@ê@' '@ê@'], [mailto:è@' @'], [mailto:'@Ê@' '@Ê@'], [mailto:'@Ë@' '@Ë@'], [mailto:'@î@' '@î@'], [mailto:'@ï@' '@ï@'], [mailto:'@Î@' '@Î@'], [mailto:'@Ï@' '@Ï@'], [mailto:'@ô@' '@ô@'], [mailto:'@ö@' '@ö@'], [mailto:'@Ô@' '@Ô@'], [mailto:'@Ö@' '@Ö@'], [mailto:'@û@' '@û@'], [mailto:'@ü@' '@ü@'], [mailto:'@ù@' '@ù@'], [mailto:'@Û@' '@Û@'], [mailto:'@Ü@' '@Ü@'], '@ @', '@  @', '@\'@'); 
 
$replace = array('a', 'a', 'a', 'A', 'A',  'c', 'e', 'e', 'e', 'e', 'E', 'E', 'i', 'i', 'I', 'I', 'o', 'o', 'O', 'O','u', 'u', 'u', 'U', 'U','-', '-', '',); 

 $nom = mb_convert_case(preg_replace($search, $replace, trim ($_POST['nom'])), MB_CASE_UPPER); 
 $prenom = mb_convert_case(preg_replace($search, $replace, trim($_POST['prenom'])),MB_CASE_TITLE);

Dsl si c'est pas trop lisible (il se peut que le compte n'y ait pas j'en ais retire pour la lisiblite.

Lorsque je lance le formulaire il me met un warning :

Warning : Compilation failed: nothing to repeat at offset 0 in c:\program files\easyphp1-8\www\opera_dev\charte\index.php on line 87

Warning: Compilation failed: nothing to repeat at offset 0 in c:\program files\easyphp1-8\www\opera_dev\charte\index.php on line 88

Les lignes 87 et 88 corresponde à $nom = .... (l. 87) et $prenom=...(l. 88)

dans mon code j'ai verifier il y a le meme nombre d'element dans mes tableaux (42) et je pense que l'erreur vient du "preg_replace()" car je ne l'avais pas avant.

Si quelqu'un a une solution je suis preneur.

______________________
Le Black Dog c'est moi
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
39
Date d'inscription
mardi 15 mars 2005
Dernière intervention
31 juillet 2006
3
Merci
C'est bon j'ai trouvé c'est une question de "" en fait je remplace certain espace par des "-" et il fallait juste que je rajoute un \ ce qui donne "\-".



$search = array( "@â@", "@ä@", "@à@", "@Â@", "@Ä@",  "@ç@", "@é@", "@ë@", "@ê@", "@è@", "@Ê@", "@Ë@", "@î@", "@ï@", "@Î@", "@Ï@", "@ô@", "@ö@", "@Ô@", "@Ö@", "@û@", "@ü@", "@ù@", "@Û@", "@Ü@", "@ @", "@  @", "@\'@", "@\{@", "@\}@", "@\(@", "@\)@", "@\[@", "@\]@", "@\|@", "@\+@", "@\%@", "@\$@", "@\!@", "@\&@");



$replace = array('a', 'a', 'a', 'A', 'A', 'c', 'e', 'e', 'e', 'e', 'E', 'E', 'i', 'i', 'I', 'I', 'o', 'o', 'O', 'O', 'u', 'u', 'u', 'U', 'U', '\-', '\-', '', '', '', '', '', '', '', '', '', '', '', '', '');

Merci pour votre aide
______________________
Le Black Dog c'est moi

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de IvanTheBlackDog
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
0
Merci
Salut,

$replace = array('a', 'a', 'a', 'A',
'A',  'c', 'e', 'e', 'e', 'e', 'E', 'E', 'i', 'i', 'I', 'I', 'o', 'o',
'O', 'O','u', 'u', 'u', 'U', 'U','-', '-', '' ,)
;

à la fin on voit ça : ,);

seulement après la virgule t'as oublié deux quotes.

ça donne ça :

$replace = array('a', 'a', 'a', 'A',
'A',  'c', 'e', 'e', 'e', 'e', 'E', 'E', 'i', 'i', 'I', 'I', 'o', 'o',
'O', 'O','u', 'u', 'u', 'U', 'U','-', '-', '','')
;

a +

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>http://www.vulgarisat%3C/body</li>
Commenter la réponse de cs_Anthomicro
Messages postés
39
Date d'inscription
mardi 15 mars 2005
Dernière intervention
31 juillet 2006
0
Merci
En fait la séquence "$replace" et "$search" ne sont pas complete pour des raisons de lisibilité sinon la version complete donne :

$search = array( "@â@", "@ä@", "@à@", "@Â@", "@Ä@", "àç@",  "@é@", "@ë@", "@ê@", "@è@", "@Ê@", "@Ë@", "@î@", "@ï@", "@Î@", "@Ï@", "@ô@", "@ö@", "@Ô@", "@Ö@", "@û@", "@ü@", "@ù@", "@Û@", "@Ü@", "@ @", "@  @", "@\'@", "@\{@", "@\}@", "@\(@", "@\)@", "@\[@", "@\]@", "@\|@", "@+@", "@%@", "@$@", "@!@", "@&@")

$replace = array('a', 'a', 'a', 'A', 'A', 'c', 'e', 'e', 'e', 'e', 'E', 'E', 'i', 'i', 'I', 'I', 'o', 'o', 'O', 'O', 'u', 'u', 'u', 'U', 'U', '-', '-', '', '', '', '', '', '', '',  '', '', '', '', '', '');

Dans cette version là j'en ais 40 au lieu de 42 comme précisé plus haut parce que j'ai retiré le * et le + parce que j'ai vu sur le net des gens qui avait le meme pb que moi et qui etait du a ces deux symboles la (pas bien gerer). Mais l'inconvenient c'est que moi le pb persiste.

______________________
Le Black Dog c'est moi
Commenter la réponse de IvanTheBlackDog

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.