Поиск внутри файлов на сервере.

Статус
В этой теме нельзя размещать новые ответы.

bork75

The Team
Регистрация
21 Июн 2008
Сообщения
1.455
Реакции
734
Залил я на сервер файлов.

И нужно мне найти в коде файлов (файлы разные - php, html, txt и т.д.), например class="content"

Кто как ищет?

Папка с вложенными папками.
 
Вот скрипт на PHP, который не только ищет, но и заменяет найденное, естественно, рекурсивно
PHP:
<?php
  $text = '$text'; // Искомая строка
  $retext = '$retext'; // Строка замены
  $dirname = "Имя корневой директории, например ."; 
  scan_dir($dirname);  // Вызов рекурсивной функции
  ////////////////////////////////////////////////////////// 
  // Рекурсивная функция - спускаемся вниз по каталогу 
  ////////////////////////////////////////////////////////// 
  function scan_dir($dirname) 
  { 
    // Объявляем переменные замены глобальными 
    GLOBAL $text, $retext; 
    // Открываем текущую директорию 
    $dir = opendir($dirname); 
    // Читаем в цикле директорию 
    while (($file = readdir($dir)) !== false) 
    { 
      // Если файл обрабатываем его содержимое 
      if($file != "." && $file != "..") 
      { 
        // Если имеем дело с файлом - производим в нём замену 
        if(is_file($dirname."/".$file)) 
        { 
          // Читаем содержимое файла 
          $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); 
  }
?>
 
Залил этот пример и не понятно как им пользоваться...
 
Может он тебе и не нужен :). Тебе просто нужно найти код в файлах и что-то сделать с этими файлами (удалить/скопировать) или все-таки найденный код заменить?
 
Может он тебе и не нужен :). Тебе просто нужно найти код в файлах и что-то сделать с этими файлами или все-таки код заменить?


Мне нужно из множества файлов найти один или несколько файлов в которых есть искомая строка, автоматом мне заменять не нужно.

Обычно я ищу локально через редактор типа FrontPage. Но нужно перетаскивать файлы с сервера.
 
Я бы использовал php-shell для этих целей и команды grep, find. Покури гугл на тему "найти файлы с определенным кодом рекурсивно"
 
Самый простой и быстрый вариант, не выходя с консоли грепом:
PHP:
grep --color=auto -iRnH 'xxx' *.xx
Покажет где именно найден ххх и даже красиво подсветит :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху