парсер ( поиск слова в файле )

Discussion in 'PHP' started by Sharky, 30 Aug 2007.

  1. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    Нужен скрипт который будет искать заданное слово в файле .а в итоге показывал сколько раз это слово встретилось в файле.

    желательно пример и на perl и на php
     
  2. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    Текстовой файл?
     
  3. A110ut

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

    Joined:
    31 Dec 2005
    Messages:
    505
    Likes Received:
    263
    Reputations:
    92
    Sharky, в гугле сорцев с примерами вагон и маленькая тележка

    Piflit, гениально. наверное в случае положительного ответа нужно будет "открыть файл блокнотом, нажать ктрл+ф и считать"
     
    1 person likes this.
  4. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    При чем тут это? Может ему надо в бинарнике сигнатуры искать. Я просто уточнил=\
     
  5. demonoid

    demonoid Banned

    Joined:
    12 Jan 2007
    Messages:
    101
    Likes Received:
    111
    Reputations:
    27
    пример

    В случае с текстовым файлом
    Code:
    #!/usr/bin/perl 
    #
    #[30.08.2007] : [1:21] 
    
    use strict;
    use warnings;
    
    (@ARGV<1)?&baner:1;
    
    open my $file, "<", $ARGV[0] or fatal_error("Can\'t open $ARGV[0]");
    my $count = 0;
    my $curr_word = undef;
    
    foreach $curr_word (<$file>)  
    {
      chomp($curr_word);
      if($curr_word=~/Sharky/m )
      {
         $count++;  
      }
    }
    
    printf "The word is found  %2d time \n",$count;
    
    sub baner
    {
       print "\t\tusage : $0 <file>\n\t\texample : $0 file.txt \n";
       exit;
    }
    
    sub fatal_error
    {
       my @buf = @_;
       printf "ERROR : %s \n",@buf;
       exit;
    }
    
    Если тебе нужно точное соответствие слова , измени регулярное выражение в 17 - й строке .
     
    #5 demonoid, 30 Aug 2007
    Last edited: 30 Aug 2007
    1 person likes this.
  6. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    спасибо...то что надо =) а можно ещё на php тоже самое?
     
  7. vizard-06

    vizard-06 Elder - Старейшина

    Joined:
    6 Dec 2006
    Messages:
    55
    Likes Received:
    8
    Reputations:
    0
    PHP:
    <?
    $s='bla';
    $fil=file_get_contents('1.txt');
    $fil=str_replace("\r\n","",$fil);
    $k=preg_match_all("/$s/i",$fil,$serch);
    echo 
    $k;
    ?>
     
    1 person likes this.
  8. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    вроде оно..во всяком случае держи +
     
  9. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Если нужно просто сосчитать кол-во каких-то слов в файле, то можно просто использовать substr_count.
    PHP:
    <?
    $file  'файл.txt';
    $slovo 'слово или текст, который мы ищем';
    $text  file_get_contents($file);
    echo 
    substr_count($text,$slovo);
    ?>