|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre du Club
![]() |
j'aimerai généraliser un remplacement de caractère :
Code :
et ou $line est la vraie ligne d'erreur retourner par __LINE__ Je suis en train de créer une fonction de gestion des erreurs sql parce que le mysql_error(); ... s'est bien mais pour debuger vraiment corectement et rapidement c'est pas terrible notement avec le numéro de ligne retourné qui n'est pas le bon je voudrais generaliser le remplacement de la ligne fournit par le mysql_error() par celle fournit par __LINE__ exemple Citation:
|
|||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
et... ca ne marche pas ? je vois pas de questions là
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
bon je recommence plus clairement
Code :
$text = "Erreur de syntaxe près de '' à la ligne 1"; ça peut etre ligne 1, ligne 127, ligne 3052, ... sauf que : la ligne retournée par le mysql_error(); et la ligne dans mon code n'est jamais la meme ! j'aimerais donc remplacer la ligne retournée par mysql_error par la constante __LINE__ alors forcément dans le cas ci dessus ça fonctionne puisque je met texto ce qu'il faut remplacer ... sauf que j'aimerais que ça le fasse tout le temps quelques soit le numéro de ligne mysql_error Code :
ereg_replace("ligne [numero]", "ligne ".$line, $text); |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
ok ;o)
Je pense quand meme tu devrais garder le numero de ligne mysql, au cas ou, ca pourrait etre utile un jour, genre afficher "ligne 32(1)" ou "ligne 32-1" au lieu de "ligne 1" Pour cela, en preg : Code :
$texte=preg_replace("#ligne ([0-9]+)$#", "ligne $line ($1)", $texte)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() |
pouriez vous m'expliquer #ligne ([0-9]+)$#
parce que a chaque fois que je veux faire une opération du type remplacement comme ça j'suis tjrs embetter parce que je sais pas me servir de ce qu'on doit mettre a l'intérieur merci edit : voici ce que j'ai cré : Code :
n'empeche que je veux bien comprendre comment ça marche le premier parametre dans ereg, preg ... |
||
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : septembre 2005 Messages : 1 741 ![]() |
Citation:
(d'autre tuto sont sur developepz.com) |
|
|
|
00
|
|
|
#7 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
alors en gros :
#...# sert a délimiter l'expression réguliere, ce n'est pas utilisé par ereg. On peut utiliser #, ou bien / ou bien d'autres caracteres, c'est au choix ;o) [] défini un ensemble de caracteres possibles 0-9 veux dire : un caractere entre 0 et 9 + veux dire : 1 ou plusieurs caracteres précédents (donc ici, 1 ou plusieurs caractere parmis l'ensemble composé des caracteres entre 0 et 9 : donc un nombre ;o) $ veux dire que l'on doit atteindre la fin de la chaine, donc que les chiffres devront etre collés a la fin du message d'erreur. () correspond a une "capture", on décide donc de capturer (=sauvegarder) le numero de la ligne mysql (si on avait pas capturé le +, on aurait eu que le premier chiffre de la ligne) Dans la chaine de remplacement, $1 sera remplacé par le 1er texte capturé. On peux aussi ecrire \1 c'est a chacun de faire selon ses préférences ;o) Les regexp sont un monde a part... et il faut s'y plonger... mais une fois qu'on connait un peu, on fait vraiment beaucoup de chose dans la manipulation des chaines de caracteres ;o)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() |
bon ça j'imprime et j'apprend par coeur ^^
merci j'ai compris bon sinon ma fonction vous en pensez quoi ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com