Давно искал такой скриптег. Решил выложить тут. Допустим вы ошиблись в шаблоне своего дора, или просто надо поменять строку (м.б. вы новичек и не юзаете ТДС), или у вас есть доступ к чужому дору который в индексе.. для этих целей юзаем сей скрипт:
<?
$work_dir=”./”;
// рабочая директория - обязательно должна заканчиваться
// символом “/”
$excl_dir=array();
$excl_dir[0]=”./webstat/”;
$excl_dir[1]=”./cgi-bin/”;
// директории, где поиск/замена не производятся - обязательно должны заканчиваться
// символом “/”
$file_mask_1=”.html”;
$file_mask_2=”.js”;
// маски обрабатываемых файлов (будут обработаны все файлы,
// содержащие данную строку в имени)
$search_str=”<noindex></DIV>”; #что ищем
$replace_str=”</DIV>”; #чем заменяем
//******************************************************
$level=0;
function sr($dir)
{
global $level,$file_mask_1,$file_mask_2,$search_str,$replace_str,$excl_dir;
echo “<b>”;
for ($i=0;$i<$level;$i++) echo “* * “;
echo $dir.”</b>”;
if (@in_array($dir,$excl_dir))
{
echo ” - needn’t search & replace<br>”;
return;
}
echo “<br>”;
$p = dir($dir);
while($ent=$p->read())
{
if ($ent!=”.” && $ent!=”..” && !is_dir($dir . $ent) && (eregi(sql_regcase($file_mask_1),$ent) || eregi(sql_regcase($file_mask_2),$ent)))
{
$tmp=@file($dir.$ent);
$str=@implode(”",$tmp);
if (strpos(”@!#%xrenoder^&*()”.$str,$search_str))
{
for ($i=0;$i<($level)+1;$i++) echo “* * “;
echo $dir.$ent.” found…”;
$str=str_replace($search_str,$replace_str,$str);
if ($fp=@fopen($dir.$ent, “w”))
{
flock($fp,LOCK_EX);
fwrite($fp,$str);
fclose($fp);
echo ” and replace<br>”;
}
else echo ” and <b>can’t replace</b><br>”;
}
}
elseif($ent!=”.” and $ent!=”..” and is_dir($dir . $ent))
{
$level++;
sr($dir.$ent.”/”);
$level–;
}
}
$p->close();
return;
}
sr($work_dir);
echo “SEARCH & REPLACE Complete”;
?>




Советую поставить данный скрипт в теги
.Да и сам он по-моему на серче светился.
[Ответить]
Черт. Теги
(пробелы убрать)
[Ответить]
Йобтвайумать! Я имел в виду тег code……
[Ответить]
Угу, сорри что кривой был, забыл поглядеть…
[Ответить]
[...] Скрипт сюда копировать не буду, выкладываю линк на пост, где он был когда-то обнаружен: PHP скрипт массовой замены строк на удаленной машине. [...]
молочага )))
[Ответить]
Если скрипт лежит в одной папке с файлами че писать в дериктории? или ее просто оставить пустой?
[Ответить]
$work_dir=”./”;
[Ответить]
Че то не пашет. Может кто скинет файлом плиз оч нужен скрипт. coolmoney2008 ГАФ mail.ru
[Ответить]
http://ttyck.ru/zamena.zip
[Ответить]
Помогите разобраться! Когда пытаюсь запустить скрипт браузер выдает “Удаленный сервер или файл не найден”. Хотя другие скрипты на php выполняются… Какие права надо выставить на данный файл? Заливаю файл в общую папку где все файлы, в настройках пишу $work_dir=”./”; Что я делаю не так?
[Ответить]
Ды вроде всё так..
[Ответить]
Дык работает скрипт или нет?! Выложите плиззз рабочий код!
[Ответить]
Работает 100%! Только щас юзал под себя.. ссылка в 10ом каменте
[Ответить]
А если стоит задача поменять кучу строк из одного файла, заключенных в одинаковые теги, последовательно на строки из другого файла - как ее решить?
[Ответить]
Определенно не этим скриптом если на автомате, если в ручную то каждую строчку ручками прописывать…
[Ответить]
Очень пригодился скриптик, спасибо!
[Ответить]
Локально работает хорошо. На хосте - работать пытается но пишет found… and can’t replace. Все делаю эдентично. Где собака порылась?
[Ответить]
C правами можт ..
[Ответить]
А как заставить его работать ?
[Ответить]
кнутом.. ну или плеткой)
[Ответить]