Version: 1
Type: Full Script
Category: File Management
License: GNU General Public License
Description: * Script para remplazar un texto por otro en los archivos de un directorio especificado * Script that will replace a text within some files contained in a specified directory
<?php
/**
* Script para remplazar un texto por otro en los archivos de un directorio especificado
* Script that will replace a text within some files contained in a specified directory
* @author Juan Carlos Gonzlez <jgonzalez@innox.com.mx>
*/
$texto_buscar = "jcgonz\@127.1"; // Text to search
$texto_remplazar = "jcgonz@localhost"; // Texto to replace with
$directorio_busqueda = 'C:\Innoxcom\www\esi'; // Directory
$patron_nombre_archivo = "Root"; // File pattern
// Obtenemos los archivos
$archivos = getRArchivosDirectorio($directorio_busqueda,
$patron_nombre_archivo);
// comenzamos el remplazo
foreach ($archivos as $archivo) {
$exito = FALSE;
$contenido = file_get_contents($archivo);
$contenido = preg_replace("/$texto_buscar/",
$texto_remplazar,
$contenido,
-1,
$exito);
if ($exito) {
$fp = fopen($archivo, "w");
if ($fp) {
fputs($fp, $contenido);
fclose($fp);
}
}
}
// fin
/**
* Funciones
*/
/**
* Funcin que recursivamente regresa todos los archivos de acuerdo al
* $patron de un directorio especificado
*
* @param char $directorio
* @param char $patron
* @return array
*/
function getRArchivosDirectorio($directorio, $patron = NULL) {
$cw_original = getcwd();
chdir($directorio);
$entradas = array();
if (is_dir($directorio)) {
$entradas = scandir($directorio);
}
$archivos = array();
foreach ($entradas as $entrada) {
if ($entrada != '.'
&& $entrada != '..') {
$entrada = realpath($entrada);
if (is_dir($entrada)) {
$archivos = array_merge($archivos, getRArchivosDirectorio($entrada, $patron));
} else {
$agregar = TRUE;
if (!is_null($patron)) {
$agregar = preg_match("/$patron/", $entrada);
}
if ($agregar) {
$archivos[] = $entrada;
}
}
}
}
chdir($cw_original);
return $archivos;
}
?>