* @version $Id$
* @license http://opensource.org/licenses/gpl-2.0.php GNU GPL 2
*/
die('Pour pouvoir utiliser ce fichier veuillez decommenter cette ligne. Ce fichier est une faille potentielle de securite, ne l\'utilisez qu\'en local, ou si vous etes certain de ce que vous faites');
/**
* Ce fichier permet de rechercher des donnees dans des fichiers.
* Tres utile quand vous souhaitez retrouver tous les fichiers comportant une certaine ligne
* de code par exemple.
*/
set_time_limit(0);
function array_map_recursive($callback, $ary)
{
foreach ($ary AS $key => $value)
{
if (is_array($value))
{
$ary[$key] = array_map_recursive($callback, $value);
}
else
{
$ary[$key] = $callback($value);
}
}
return ($ary);
}
function clean_gpc()
{
// On supprime toutes les variables crees par la directive register_globals
// On stripslashes() toutes les variables GPC pour la compatibilite DBAL
$gpc = array('_GET', '_POST', '_COOKIE');
$magic_quote = (get_magic_quotes_gpc()) ? true : false;
$register_globals = (ini_get('register_globals')) ? true : false;
if ($register_globals || $magic_quote)
{
foreach ($gpc AS $value)
{
if ($register_globals)
{
foreach ($GLOBALS[$value] AS $k => $v)
{
unset($GLOBALS[$k]);
}
}
if ($magic_quote && isset($GLOBALS[$value]))
{
$GLOBALS[$value] = array_map_recursive('stripslashes', $GLOBALS[$value]);
}
}
}
}
clean_gpc();
$word = (isset($_POST['word'])) ? $_POST['word'] : '';
$dir = (isset($_POST['dir'])) ? $_POST['dir'] : '';
$ext = (isset($_POST['ext'])) ? $_POST['ext'] : '';
$replace = (isset($_POST['replace'])) ? $_POST['replace'] : '';
$casse = (isset($_POST['casse'])) ? $_POST['casse'] : 1;
$regexp = (isset($_POST['regexp'])) ? $_POST['regexp'] : 1;
function search_in_file($word, $dir, $ext, $casse, $regexp, $replace)
{
$fd = opendir($dir);
while ($file = readdir($fd))
{
if ($file[0] != '.' && $file != 'config.php')
{
if (is_dir($dir . $file))
{
search_in_file($word, $dir . $file . '/', $ext, $casse, $regexp, $replace);
}
else
{
if (!strlen(trim($ext)) || preg_match('#(' . implode('|', explode(',', $ext)) . ')$#i', $file))
{
$content_file = file_get_contents($dir . $file);
$content = file($dir . $file);
$count = count($content);
$print = false;
for ($i = 0; $i < $count; $i++)
{
if (preg_match('#' . (($regexp) ? str_replace('#', '\#', $word) : preg_quote($word, '#')) . '#' . (($casse) ? 'i' : ''), $content[$i]))
{
if (!$print)
{
$print = true;
echo 'Fichier : ' . $dir . $file . '
';
}
echo '
' . $i . ' ' . trim(preg_replace('#(' . (($regexp) ? str_replace('#', '\#', htmlspecialchars($word)) : preg_quote(htmlspecialchars($word), '#')) . ')#' . (($casse) ? 'i' : ''), '\\1', htmlspecialchars($content[$i]))) . '';
}
}
// Remplacement ?
if ($replace)
{
$content_file = preg_replace('#' . (($regexp) ? str_replace('#', '\#', $word) : preg_quote($word, '#')) . '#' . (($casse) ? 'i' : ''), $replace, $content_file);
$fd2 = fopen($dir . $file, 'w');
fwrite($fd2, $content_file);
fclose($fd2);
}
if ($print)
{
echo '