Salut.
J'ai un bug "à la MS-DOS", j'entend par là que tout est bon, mais qu'après 2h de vérification intense, il lâche rien
EXTRAIT CONCERNÉ
Voici un bout de ma fonction cat_edit :
- Cette fonction prend le contenu d'un fichier cat.htm ($content) qui est la catégorie où sont stockées des annonces, et l'analyse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // On ajoute les morceaux suivant que le nombre d'annonces est pair ou impair if (is_pair($num)) { $sample = $path_samples . "/cat_pair.htm"; $replace_with = file_get_contents($sample); $pattern = '# <tr> <td> </td> <td> </td> </tr>#'; $content = preg_replace($pattern, $replace_with, $content) or exit("preg_replace a échoué (fichier cat_edit.php, ligne 39)"); } if (!is_pair($num)) { $sample = $path_samples . "/cat_impair.htm"; $replace_with = file_get_contents($sample); $pattern = '# </TABLE></td> <td> </td>#'; $content = preg_replace($pattern, $replace_with, $content) or exit("preg_replace a échoué (fichier cat_edit.php, ligne 46)"); }
- Elle détermine le nombre d'annonces qu'il y a déjà (avant le bout de code ici présent).
- Suivant un nombre pair ou impair d'annonces (is_pair()), elle va chercher tel ou tel morceaux basique de code ($sample)...
- ... qu'elle colle au bon endroit avec un preg_replace() (les $pattern servent à celà)
- et après elle change des trucs dans le fichier mais tout ça fonctionne, pas besoin d'en parler ici.
PROBLEME :
- Si le nombre d'annonce est impair, le bout de code présent dans cat_impair.htm n'est pas ajouté à cat.htm
VÉRIFICATIONS DÉJA EFFECTUÉES :
- si le nombre d'annonces est pair ça fonctionne (le bout de code est ajouté).
- la boucle "if (!is_pair($num))" est bien lue en cas de nombre impair.
- le fichier "cat_impair.htm" est adéquat.
- la $pattern est adéquate (tout correspond et s'emboîte parfaitement, virtuellement parlant).
- il n'y a bien qu'une fois la $pattern dans le fichier escompté (donc pas de risque de confusion qui laisserait le code pantois).
- $replace_with contient bien le morceau de code (donc "cat_impair.htm" est bien lu).
edit :
- je viens de tester une pattern plus simple, sur une ligne presque vide à la fin du fichier, et le morceau est bien collé !
PISTES :
- c'est au moment où preg_replace() est utilisé que ça ne fonctionne pas
- la pattern dérange, dans sa forme ? (pourtant l'autre ne dérange pas !)...
edit :
- oui la pattern dérange dans sa forme ! Mais je dois absolument l'utiliser, pas moyen de faire autrement
need help !
Partager