Нужен простенький скрипт

Discussion in 'PHP' started by iSeoBot, 9 Mar 2009.

  1. iSeoBot

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

    Joined:
    11 Apr 2008
    Messages:
    82
    Likes Received:
    67
    Reputations:
    13
    Как организовать такое
    есть два файла file1.txt и file2.txt c содержимым

    file1.txt

    file2.txt

    нужно зделать так чтоб скрипт брал строку из file1.txt и смотрел нет ли такого кейворда с троке файла file2.txt,если есть сохранить всю строку в file3.txt
    и так пока не кончатся кейворды в файле file1.txt

    Очень нужно :) Поставлю + и скину чисто символически вм :rolleyes:
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php
    $res 
    fopen('tema3.txt','w'); // Результирующий файл
    $ipArray array_map("trim"file("tema1.txt")); // Файл с кейвордами
    $file2 fopen('tema2.txt','r'); // Файл с ссылками
    while (!feof($file2)) {
      
    $buf trim(fgets($file2,4096));
      
    preg_match('|>(.*)</a>|',$buf,$out);
      if( 
    in_array($out[1],$ipArray)) fwrite ($res,$buf "\r\n");

    fclose ($res);
    fclose ($file2);
    ?>
    или так:

    PHP:
    <?php
    $res 
    fopen('tema3.txt','w'); // Результирующий файл
    $ipArray array_map("trim"file("tema1.txt")); // Файл с кейвордами
    $file2 fopen('tema2.txt','r'); // Файл с ссылками
    while (!feof($file2)) {
      
    $buf trim(fgets($file2,4096));
      for (
    $i=0;$i<count($ipArray);$i++){
        if(
    strpos($buf,$ipArray[$i])) {fwrite ($res,$buf "\r\n");break;}
      }

    fclose ($res);
    fclose ($file2);
    echo 
    'done';
    ?>
    или так (более правильно, не зависит от размеров памяти и размеров обоих файлов):

    PHP:
    <?php

    function check($str,$file1) {
     while (!
    feof($file1)) {
       
    $f =  trim(fgets($file1,4096));
       if (
    strpos($str,$f)) return true;
     }
     return 
    false;  
    }



    $res fopen('tema3.txt','w'); // Результирующий файл
    $file2 fopen('tema2.txt','r'); // Файл с ссылками
    $file fopen('tema1.txt','r'); // Файл с кейвордами
    while (!feof($file2)) {
      
    $buf trim(fgets($file2,4096));
      if(
    check($buf,$file)) fwrite ($res,$buf "\r\n");

    fclose ($res);
    fclose ($file2);
    fclose($file);
    echo 
    'done';
    ?>
    Плюс и мани можешь оставить себе:)
     
    #2 Pashkela, 9 Mar 2009
    Last edited: 9 Mar 2009
    3 people like this.
  3. iSeoBot

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

    Joined:
    11 Apr 2008
    Messages:
    82
    Likes Received:
    67
    Reputations:
    13
    Спасибо большое!