Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.8410
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 15.06.2011, 09:32   #1
yaebashu
Member
 
Регистрация: 15.03.2010
Сообщений: 40
Бабло: $15335
По умолчанию нужен скрипт

имеем
domain.com/papka/zpapka/
domain.com/papka/ypapka/
domain.com/papka/mpapka/
в каждой папке по много html файлов.
нужно в каждом файле поменять одну строчку на другую.

по срочняку нужно
накиньте пжалста готовый рецепт, или мож кто состряпает за символическую плату?
yaebashu вне форума  
Старый 15.06.2011, 09:55   #2
0xDEAD
Senior Member
 
Аватар для 0xDEAD
 
Регистрация: 03.11.2009
Сообщений: 152
Бабло: $20330
По умолчанию

лови
PHP код:
function replace($dir$search$replace) {
    echo 
$dir.PHP_EOL;
    
$d dir($dir);

    while (
false !== ($entry $d->read())) {
        if(
$entry == "." || $entry == "..")
            continue; 

        
$f $dir.DIRECTORY_SEPARATOR.$entry;
        if(
is_file($f)) {
            
$repl preg_replace($search$replacefile_get_contents($f));
            if(
$replfile_put_contents($f$repl); 
        } else
            
replace($f$search$replace);
    }
    
$d->close();
}

replace(realpath("папко где ищем"), "/что ищем/""на что меняем"); 
0xDEAD вне форума  
Старый 15.06.2011, 10:48   #3
yaebashu
Member
 
Регистрация: 15.03.2010
Сообщений: 40
Бабло: $15335
ТС -->
автор темы ТС По умолчанию

спасибо большое мил человек. пойду тестить
yaebashu вне форума  
Старый 15.06.2011, 11:59   #4
Fedja
Senior Member
 
Аватар для Fedja
 
Регистрация: 29.09.2008
Сообщений: 1,617
Бабло: $203263
По умолчанию

вот ещё вариант (делает замену во всех папках сразу)

PHP код:
<?php 

  $text 
'старый текст'// Искомая строка 
  
$retext 'новый текст'// Строка замены 
  
$dirname ".";  
  
scan_dir($dirname);  // Вызов рекурсивной функции 

  //////////////////////////////////////////////////////////  

  // Рекурсивная функция - спускаемся вниз по каталогу  

  //////////////////////////////////////////////////////////  

  
function scan_dir($dirname)  
  {  
    
// Объявляем переменные замены глобальными  
    
GLOBAL $text$retext;  
  
$allowed_files = array("php","html","htm");  // Опеределяем файлы для замены. Можно оставить только php или только html 
//$allowed_files = explode( ',', strtolower( $mscfg['filetypes'] ) ); 
    // Открываем текущую директорию  
    
$dir opendir($dirname);  
    
// Читаем в цикле директорию  
    
while (($file readdir($dir)) !== false)  
    {  
      
// Если файл обрабатываем его содержимое  
      
if($file != "." && $file != ".." && $file != "zamena.php")   // Здесь имя файла с этим скриптом, чтобы в нем ничего не менять 
      
{  
        
// Если имеем дело с файлом - производим в нём замену  
        
if(is_file($dirname."/".$file))  
        {  
$tfile array_pop(explode('.'$dirname."/".$file)); 
//echo $tfile; 
//echo "<br>"; 
if (in_array(strtolower($tfile), $allowed_files)) 
           { 
          
// Читаем содержимое файла  
          
$content file_get_contents($dirname."/".$file);  
          
// Осуществляем замену  
          
$content str_replace($text$retext$content);  
          
// Перезаписываем файл  
          
file_put_contents($dirname."/".$file,$content);  
           } 
        }  
        
// Если перед нами директория, вызываем рекурсивно  
        // функцию scan_dir  
        
if(is_dir($dirname."/".$file))  
        {  
          echo 
$dirname."/".$file."<br>";  
          
scan_dir($dirname."/".$file);  
        }  
      }  
    }  
    
// Закрываем директорию  
    
closedir($dir);  
  } 

?>
Fedja вне форума  
Старый 15.06.2011, 12:06   #5
dim7
Senior Member
 
Аватар для dim7
 
Регистрация: 22.08.2008
Сообщений: 926
Бабло: $173120
По умолчанию

нужен похожий скрипт, только файлы на удаленных хостах с доступом по ФТП. и 50 вариантов для подмены на случайный вариант из файла. Т.Е. в каждом файле может быть от 1 до несколько подмен.
__________________
LoadedCash - вечные ребилы -|- Налят Сюда
dim7 вне форума  
Старый 15.06.2011, 12:53   #6
redlain
Ебланнед
 
Регистрация: 27.10.2009
Сообщений: 1,631
Бабло: $240645
По умолчанию

тс совсем не палится )
redlain вне форума  
Старый 15.06.2011, 13:43   #7
yaebashu
Member
 
Регистрация: 15.03.2010
Сообщений: 40
Бабло: $15335
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от redlain Посмотреть сообщение
тс совсем не палится )
ну кстати без всякой грязи
yaebashu вне форума  
Старый 15.06.2011, 13:59   #8
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,382
Бабло: $470735
По умолчанию

Код:
find papka/ -type f -exec sed -i 's/from/to/ig' '{}' \;
если нужно учитывать регистр, то вместо ig просто g
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 15.06.2011, 21:28   #9
xealey
Senior Member
 
Аватар для xealey
 
Регистрация: 04.09.2007
Сообщений: 1,271
Бабло: $253980
По умолчанию

Цитата:
ну кстати без всякой грязи
ага, сквозняки с пирогов, какая там грязь?
xealey вне форума  
Старый 15.06.2011, 21:30   #10
παφ
накидка-антиблик адидас
 
Аватар для παφ
 
Регистрация: 20.11.2010
Сообщений: 2,153
Бабло: $361580
По умолчанию

παφ вне форума  
Закрытая тема



Опции темы
Опции просмотра