Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Массовое добавление кода в файлы
цитата
30/12/15 в 15:51
 dmmcash
Посоветуйте пожалуйста чем можно добавить на сервере в целую кучу index.html одинаковый код перед закрывающим тегом </body>. Хочу в галеры счетчик добавить а их много очень. Может есть какое-то стандартное решение?
цитата
30/12/15 в 16:07
 San_Tehnik
А много - это сколько? У меня как-то была подобная необходимость, файлов было около 400 штук. Но такое решение подойдет, если файлы в одной папке лежат. Я выкачал их все по фтп, открыл сразу все на редактирование через notepad++.
Потом жмешь Ctrl+H и заменяешь </body> на <твой код></body> сразу во всех документах. Ну и сохраняешь сразу все и назад их на сервер. Не самое изящное решение, конечно, но работает.
цитата
30/12/15 в 16:50
 Doctor
старым добрым скриптом Хренодера прогони да и делов...)

<?
$work_dir="dir/";       
// рабочая директория - обязательно должна заканчиваться
// символом "/"

$excl_dir=array();
$excl_dir[0]="exclude/";       
// директории, где поиск/замена не производятся - обязательно должны заканчиваться
// символом "/"


$file_mask_1=".html";   
$file_mask_2=".php";   
// маски обрабатываемых файлов (будут обработаны все файлы,
// содержащие данную строку в имени)

$search_str='search';   #что ищем
$replace_str='replace';   #чем заменяем

//******************************************************

$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";

?>
цитата
30/12/15 в 19:07
 dmmcash
San_Tehnik писал:
А много - это сколько?

Когда локально папки я так и делаю. А тут дело в том что они все в папках с картинками. Качать придется естесственно папки целиком, а это дохрена.

Doctor писал:
старым добрым скриптом Хренодера прогони да и делов...)
Спасибо большое за код. Попробую им все сделать.
цитата
30/12/15 в 19:09
 Diablo
Doctor писал:
старым добрым скриптом Хренодера прогони да и делов.


я до сих пор урл по памяти помню smail101.gif
http://xrenoder.com/sr.txt
цитата
30/12/15 в 20:34
 rickdeckard
лучше настроить обработчик контента веб сервера. чтоб на лету добавлял.

nginx
http://nginx.org/en/docs/http/ngx_http_sub_module.html#subs_filter

apache
http://httpd.apache.org/docs/2.4/mod/mod_substitute.html
цитата
30/12/15 в 20:34
 Doctor
Diablo писал:
я до сих пор урл по памяти помню smail101.gif
http://xrenoder.com/sr.txt


smail54.gif smail101.gif


Эта страница в полной версии