Bonjour à tous!
J'ai un projet en php contenant quelques centaines de fichiers avec du code bien sale. Du bon procédural avec le code HTML mélangé dans des fonctions de traitement, à l'ancienne, avec une mise en page à base de <table>. Bref du bonheur...
Je souhaite dépoussiérer ce projet (dont je ne suis pas l'auteur) et effectuer un découpage MVC puis une factorisation du code. (courage, courage!)
La première étape quand je prends un fichier c'est d'effectuer quelques manipulations de base (réécriture des balises HTML en minuscules, réécriture des include() et require(), changement de certaines classes HTML, etc...) Ces manipulations je les effectue à la main et ça me prend 10 bonnes minutes par fichier, et vu le nombre de fichiers...Donc je voudrais créer une routine, à base de RegEx, pour automatiser cette étape.
J'ai effectué des test, j'arrive a utiliser mes RegEx sur des variables mais pas directement sur mon fichier. Voici comment je procède:
La seule chose que j'obtiens comme changement sur mon fichier c'est qu'au tout début il apparaît ce message : "Resource id #3" !!
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
18
19
20
21
22
23
24
25
26
27
28
29
30 // Dossier source $folder = 'MonDossier' . DIRECTORY_SEPARATOR; // Fichier source $file = 'testFile.php'; // chemin complet vers mon fichier source $path = ROOT . $folder . $file; // Teste si le fichier existe if (file_exists($path)) { echo 'Le fichier : "' . $path . '" existe'; } else { echo 'Erreur, le fichier : "' . $path . '" n'existe pas'; } // ouverture du fichier en lecture et écriture $handle = fopen($path, 'r+'); // REGEX insensible à la casse avec '/i' $pattern = '/^(include|require){1}(_once)?[ ]?[\(]?[\'"](.*?)[\'"][\)]?[ ]?;/i'; $replace = '${1}${2}W ROOT . \'${3}'.'\';'; // Modification du contenu $action = preg_replace($pattern, $replace, $handle); // Ecriture dans le fichier $write = fwrite($handle, $action); // Fermeture du fichier fclose($path);
Je crois que je n'ai pas compris comment on manipule le contenu d'un fichier...
Voyez-vous d'où vient mon erreur et comment la réparer svp?
Merci pour votre temps.
Partager