Скрипт для замены ссылок в дорах ищу

Тема в разделе "Вопросы новичков", создана пользователем SergeiSP, 12 мар 2009.

Статус темы:
Закрыта.
  1. SergeiSP

    SergeiSP

    Регистр.:
    13 фев 2007
    Сообщения:
    375
    Симпатии:
    115
    Привет. Возникла такая проблемка - нужно на нескольких дорах поменять ссылки на партнерку. В дорах по 1000 файлов. Может есть скрипт какой-нибудь, который перебирает все файлы, ищет там искомую строчку и меняет на нужную?
     
  2. pavlenkora

    pavlenkora

    Регистр.:
    8 окт 2008
    Сообщения:
    196
    Симпатии:
    80
    Funduc Search and Replace 6.1

    http://rapidshare.com/files/207442434/Search_and_Replace_6.1_Retail_Rus_www.inoe.name.rar

    Программа проводит поиск и замену заданных выражений (ссылок) в нескольких файлах и каталогах.
     
    SergeiSP нравится это.
  3. myid37

    myid37 Создатель

    Регистр.:
    4 июн 2008
    Сообщения:
    19
    Симпатии:
    2
    Вот этим скриптом можно
    Код:
    <?
    $work_dir="./"; 		
    // рабочая директория - обязательно должна заканчиваться
    // символом "/"
    
    $excl_dir=array();
    $excl_dir[0]="./no_work_here/"; 		
    $excl_dir[1]="./and_here/and_here/";
    
    // директории, где поиск/замена не производятся - обязательно должны заканчиваться
    // символом "/"
    
    
    $file_mask_1=".html";	
    $file_mask_2=".js";
    // маски обрабатываемых файлов (будут обработаны все файлы,
    // содержащие данную строку в имени)
    
    $search_str="test";	#что ищем
    $replace_str="TEST";	#чем заменяем
    
    //******************************************************
    
    $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";
    
    ?>
     
    SergeiSP нравится это.
  4. frayk

    frayk Постоялец

    Регистр.:
    24 июл 2008
    Сообщения:
    103
    Симпатии:
    16
    А как сделать, чтоб скрипт по FTP к папке с дорами коннектился и производил замену ? Или его обязательно надо на хостинге где доры находятся размещать ?
     
  5. ELF0007

    ELF0007

    Регистр.:
    3 авг 2008
    Сообщения:
    176
    Симпатии:
    9
    Я лично @Text Replacer пользуюсь маленьяка быстрая и легкая прожка. Правдо дор придеться скачать себе а потом обратно :)
     
  6. Anton

    Anton ¯\_(ツ)_/¯

    Moderator
    Регистр.:
    28 авг 2007
    Сообщения:
    653
    Симпатии:
    641
  7. lungsmoney

    lungsmoney Постоялец

    Регистр.:
    25 апр 2008
    Сообщения:
    81
    Симпатии:
    23
    десктопная фриваре
    _ttp://www.yanakayevs.narod.ru/soft/replace.exe
     
  8. Nike59

    Nike59

    Регистр.:
    13 ноя 2006
    Сообщения:
    459
    Симпатии:
    100

    Есть скрипт "хацкерский" на Perl. Называется вроде бы DiFra FTP-iframer. Он в несколько потоков может менять по фтп содержимое паг по шаблону.
     
  9. morfeus

    morfeus Постоялец

    Регистр.:
    25 авг 2007
    Сообщения:
    102
    Симпатии:
    11
    вообще Power Grep рулит в этом деле)
    но, опять же, удаленно не может...
     
  10. bikan

    bikan Постоялец

    Регистр.:
    28 мар 2008
    Сообщения:
    55
    Симпатии:
    1
    Скажите, если я запускаю скрипт (выложенный myid37 ) из директории, (в которой находится сам скрипт и файлы, которые собираюсь править), то код где указывается рабочая директория - $work_dir="./"; править не нужно, я правильно понимаю?

    И что означает эта ошибка?
    Warning: strpos() [function.strpos]: Empty delimiter in /путь директории/sr.php on line 49
     
Статус темы:
Закрыта.