/*------------------------------*/
|
/*
|
Titre : Modifications dans plusieurs fichiers
|
|
Auteur : azursante
|
Date édition : 25 Fev 2019
|
Date mise a jour : 14 Aout 2019
|
|
Rapport de la maj:
|
- correction du code
|
- maintenance du code
|
*/
|
/*------------------------------*/
|
|
######################################### A MODIFIER
|
#######################################
|
// Répertoire racine du scan (au format UNIX même sous Windows)
|
$root_dir = "d:/web";
|
|
// Extensions des fichiers concernés par le remplacement
|
$ext = array('php', 'php5', 'inc');
|
|
// Chaine à  chercher
|
$find = 'odbc_connect(';
|
|
// Chaine à  remplacer
|
$replace = 'odbc_pconnect(';
|
|
// Si vous mettez true, les fichiers originaux modifiés seront copiés avec
|
// l'extension .bak
|
// Remarque : ne laissez pas des fichiers .bak sur un serveur de production !
|
$backup = false;
|
################################################################################
|
############
|
|
//Fonction qui scan un répertoire et ses sous-répertoires et modifie les
|
// fichiers concernés
|
//si la chaà ®ne est trouvée
|
function scan_dir($path, $find, $replace, $backup = false) {
|
global $change, $ext, $backup;
|
|
if(false !== $dp = opendir($path)) {
|
|
while($file = readdir($dp)) {
|
$f = $path . '/' . $file;
|
if($file != '.' and $file != '..' and $f != $_SERVER[
|
'SCRIPT_FILENAME']) {
|
if(is_dir($f)) {
|
scan_dir($f, $find, $replace, $backup);
|
} else {
|
$info_file = pathinfo($f);
|
foreach($ext as $extension) {
|
if(isset($info_file['extension']) and 0 === strcmp(
|
$extension, $info_file['extension'])) {
|
$old_content = file_get_contents($f);
|
|
$new_content = str_replace($find, $replace,
|
$old_content);
|
|
if(strcmp($old_content, $new_content)) {
|
$change = true;
|
|
if($backup) {
|
rename($f, $f . '.bak');
|
}
|
|
if(false !== ($fp = fopen($f, 'w'))) {
|
fwrite($fp, $new_content);
|
fclose($fp);
|
}
|
echo '<li>' . $f . '</li>';
|
}
|
break;
|
}
|
}
|
}
|
}
|
}
|
closedir($dp);
|
}
|
return;
|
}
|
|
//Présentation des résultats
|
echo '<h2><u>Résultat du traitement : </u></h2>';
|
echo '<h4>Chaine à  rechercher : ', $find;
|
echo '<h4>Chaine à  remplacer : ', $new, '</h4>';
|
echo '<h4>Liste des fichiers modifiées : </h4>';
|
echo '<h5><ul>';
|
|
//On scan le répertoire et ses sous-répertoires
|
$change = false;
|
scan_dir($root_dir, $find, $replace, $backup);
|
|
if(!$change) {
|
echo '<li>Aucun fichier mis à  jour !</li>';
|
}
|
echo '</ul></h5>';
|
|
| ?> |
Invité
21 Oct 2022 à 19:36Merci beaucoup. C'est exactement ce que je recherchais ! J'ai cependant dû remplacer $new par $replace dans : echo'<h4>Chaine àremplacer : ', $new, '</h4>';
Invité
11 Mai 2020 à 16:35Merci pour ce code.