как прочитать содержимое всех файлов

Discussion in 'PHP' started by Leon2009, 25 Apr 2010.

  1. Leon2009

    Leon2009 New Member

    Joined:
    1 Sep 2009
    Messages:
    44
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте! не могу сообразить: вывод искомой строчки из одного фала получается а из всех файлов немогу.
    PHP:
    <?php
    $dir 
    "/home/localhost/www/tmp";
    $dh  opendir($dir);
    while (
    false !== ($filename readdir($dh))) 
    {
        
    $files[] = $filename;
    }
    sort($files);
    print_r($files);
    rsort($files);
    print_r($files);

    $file=file;
    $homepage =  file_get_contents $file );
    $string=$homepage;
    $find="Текст который ищется в файлах";
    if (
    strpos ($string$find) === FALSE)

    echo 
    'netu text1<br>';

     }
     else 

    echo 
    "<br><br>text= ",$find;
    echo 
    "<a href='$file'>vash fail</a>";
    }
    ?> 
    Спасибо! :confused:
     
  2. $now

    $now Member

    Joined:
    27 Apr 2009
    Messages:
    75
    Likes Received:
    9
    Reputations:
    3
    $file=file; - это что подразумевалось?

    Вы составили массив из файлов, теперь поиск в файле поместите в цикл

    PHP:
    foreach ($files as $file) {
    // тут ваш код обработки файла
    }
     
    #2 $now, 25 Apr 2010
    Last edited: 25 Apr 2010
  3. Leon2009

    Leon2009 New Member

    Joined:
    1 Sep 2009
    Messages:
    44
    Likes Received:
    0
    Reputations:
    0
    $file="file.txt"; когда один файл ставлю читает, а все файлы нет
     
  4. $now

    $now Member

    Joined:
    27 Apr 2009
    Messages:
    75
    Likes Received:
    9
    Reputations:
    3
    Leon2009 см. предыдущий мой пост
     
  5. Failure

    Failure Elder - Старейшина

    Joined:
    21 Sep 2008
    Messages:
    179
    Likes Received:
    46
    Reputations:
    16
    2 Leon2009
    PHP:
    <?php
    $dir 
    scandir("."); //папка в которой файлы
    foreach($dir as $file) {
    if(
    $file !== '.' && $file !== '..' && $file !==substr(strrchr(__FILE__"/"), 1)) { //слэш наверно прийдется поменять на \ (в винде в путях бэкслеш, так что ориентируйся сам)
        
    $tmp file_get_contents($file);
        
    //...... делаешь с этим что хочь
      
    }
    }
    ?>
    2 XPYMGT, так питон (интерпретируемый скриптовый), яву(объектный) или си(компилируемый, не объектный)?
    Давай не говорить лишнего (тем более того чего не понимаем) и не оффтопить ;)
     
  6. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    константу DIRECTORY_SEPARATOR ещё никто не отменял.
     
    1 person likes this.
  7. Leon2009

    Leon2009 New Member

    Joined:
    1 Sep 2009
    Messages:
    44
    Likes Received:
    0
    Reputations:
    0
    Спасибо!

    Спасибо! за помощь, вобщем вот что у меня получилось:
    scandir - он наверное для php5, у меня стоит Апаче с 4м, я так думаю, т.к выдавал ошибку.
    PHP:
    <?php
    $dir 
    "/home/localhost/www/tmp";
    $dh  opendir($dir);
    while (
    false !== ($filename readdir($dh))) 
    {
        
    $files[] = $filename;
    }
    foreach(
    $files as $file
    {
    if(
    $file !== '.' && $file !== '..' && $file !==substr(strrchr(__FILE__"/"), 1))
    {
    $homepage =  file_get_contents $dir."/".$file );
    $string=$homepage;
    $find="1111";
    if (
    strpos ($string$find) === FALSE)

    echo 
    '<br>netu text1<br>';
     }
     else 

    echo 
    "<br>text= ",$find;
    echo 
    "<br>link-<a href='$dir.'/'.$file'>vash fail</a>";
    }
    }
    }
    ?>
    не смог тока разобрать строчку:
    PHP:
    <a href='$dir.'/'.$file'>
    путь к файлу пишет /home/localhost/www/tmp. - но название файла уже нет. ставлю
    PHP:
    <a href='$file'>
    пишет название файла но путь уже не пишет. т.е localhost/1.txt или /home/localhost/www/tmp одно из двух :D как тока не минял там значение :confused:
     
  8. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    Пишу с компа друга , поэтому не провекрял.
    Должно работать по идеи :D
    PHP:
    <?php
    ini_set
    ('set_time_limit',0); 
    ini_set("memory_limit""528M");
    set_time_limit(0); 
    error_reporting(0); 

     function 
    _readdir($d,&$files) { 
    global 
    $opendir
    $dir opendir ($d); 
      while ( 
    $file readdir ($dir)) 
      { 
         if (( 
    $file != ".") && ($file != "..")) 

       
    $opendir=$d.'/'.$file
             if(
    filetype($opendir)=="dir"
            { 
            
    _readdir($opendir,&$files); 
            } 
            else 
            { 
             
    $files[] = $opendir

       } 
       } 

       
    closedir ($dir); 
     } 
      
    $stroka '@mail.ru'// то ищем в файлах. типа текст
     
    _readdir('/home/',&$files); // ТУт указываем полный путь до папки которую нужно .... 
      
      
    foreach ($files as $index) { 
    $pamparam file_get_contents($index); 
    if (
    strstr($pamparam$stroka)) $results .= $index.', ';
     } 

    echo 
    "Уважаемый хакер, тест '$stroka' был найден в $results файлах!";
    ?>
     
  9. Leon2009

    Leon2009 New Member

    Joined:
    1 Sep 2009
    Messages:
    44
    Likes Received:
    0
    Reputations:
    0
    Спасибо! я не знал что можно на память лемит ставить!
     
  10. XPYMGT

    XPYMGT New Member

    Joined:
    11 Apr 2009
    Messages:
    34
    Likes Received:
    3
    Reputations:
    0
    Мое сообщение о вредности пэхэпэ неизвестно кто и по какой причине удалили, удалите тогда и высер в мою сторону со стороны неизвестного мне человека выше
     
Loading...