как заменить ссылку во всех файлах

Тема в разделе "Вопросы новичков", создана пользователем zsaz, 14 сен 2008.

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

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    Залил несколько тысяч файлов доргеном на хост.
    Но мне надо там кое-чего поменять, один и тот же текст на всех страницах. Как быть?? а то скачивать не охото все страницы, а как прямо на фтп поменять я не знаю
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
  3. zsaz

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    по ходу нет:

    Все тарифные планы включают:

    * CGI, SSI, PHP5, Perl, Python, MySQL.
    * Последняя стабильная версия DirectAdmin либо HostPanel.
    * Полное еженедельное резервное копирование.
    * Детальная статистика Webalizer.
    * Cron - планировщик задач.
    * Поддержка .htaccess

    http://fastfile.ru
    здесь сайт
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Тогда идёшь в раздел PHP, ищешь скрипт для получения всех файлов папке и допиливаешь под свои нужды (или находишь, кто допилит).
    Может есть какие-то тулзы для таких целей, но мне не известны.
     
  5. zsaz

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    все, с хостингом договорился... сделают мне ssh....
    так как тогда можно сделать эту замену через ssh???
     
  6. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    perl -pi -w -e 's/что_ищем/на_что_меняем/g;' *.php
     
  7. zsaz

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    ага, данный метод работает, но с небольшим косяком....
    а если мне надо заменить domain.com/papka/site.html
    на site2.html

    тут косяк со слешами получается что ничего не заменяется.. попробывал взять в кавычки, но не получилось... может надо как-то по другому?
     
  8. ChemicalForce

    ChemicalForce Постоялец

    Регистр.:
    14 июн 2008
    Сообщения:
    72
    Симпатии:
    45

    <?
    /*
    Конфигурация:
    В $param1 строчка, которую надо заменить
    в $param2 - строчка, какой надо заменить $param1
    Применение:
    Кидаеш скрипт в папку, он сканит все имеющиеся файлы, открывает их, и проверяет на наличие строки $param1
    Если таковая находится, то скрипт заменяет ее на $param2
    */


    $param1 = "'";
    $param2 = "'";

    $d = dir(".");
    while($entry=$d->read())
    {
    if ($entry != '.' and $entry != '..' and $entry != 'edit.php' and $entry != 'edit1.php')
    {
    $r=fopen($entry, 'r');
    $text=fread($r,filesize($entry));
    fclose($r);
    $text = ereg_replace($param1,$param2,$text);
    $w=fopen($entry,'w');
    fwrite($w,$text);
    fclose($w);
    }
    }
    ?>
     
  9. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Конечно по другому - обратным слэшем.

    ChemicalForce:
    1. мой код быстрее.
    2. ereg уходит в прошлое
    3. str_replace быстрее (вроде как)
     
  10. zsaz

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    to CHEMICAL

    Warning: fopen(page.html) [function.fopen]: failed to open stream: Permission denied in /home/login/domains/daomain.com/public_html/11.php on line 24

    Warning: fwrite(:( supplied argument is not a valid stream resource in /home/login/domains/domain.com/public_html/11.php on line 25

    Warning: fclose(:( supplied argument is not a valid stream resource in /home/login/domains/domain.com/public_html/11.php on line 26




    to PHP MASTER

    Argument list too long

    и вобще я правильно написал??
    perl -pi -w -e 's/domain.com\papka\site.html/site2.html/g;' *.html
    хотя я и так писал тоже
    perl -pi -w -e 's\domain.com/papka/site.html\site2.html\g;' *.html


    P.S. обрабатывается порядка 10 000 файлов, может ему сильно много???

    и тогда какой предел он может обработать таким способом??
     
Статус темы:
Закрыта.