смешать слово из строк из n файлов файлов

Discussion in 'PHP' started by ufaclub, 22 Dec 2011.

  1. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    есть например 3 файла - 1.txt, 2.txt, 3.txt

    1.txt
    PHP:

    дерево
    камень
    вода
    ........

    2.txt
    PHP:

    хороший 
    плохой
    средний
    .......

    3.txt
    PHP:

    цена 
    стоимость
    купить
    ....

    как на выходе получить список из строк вида


    камень средний стоимость
    вода средний купить
    ........

    т.е рандомно мешать строчки :)
     
  2. erwert

    erwert New Member

    Joined:
    14 Dec 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    пхх..
    Значит берем функцию рандом по количеству строк в 3-ех файлах.. и о чудо. считываем нужные строки.. и все (=.
     
  3. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php
    $fp1
    =fopen("a.txt""r");
    $fp2=fopen("b.txt""r");

    while(!
    feof($fp1))
     {
         
    $txt=fgets($fp11024);
         if(
    strlen($txt) < 1) continue;
         
    $txt substr($txt0strlen($txt)-2);
         while(!
    feof($fp2))
            {
                  
    $txt2 .=fgets($fp21024);
                  if(
    strlen($txt2) < 1) continue; 
                  echo 
    $txt." ".$txt2."<br>";
                  
    $txt2 ="";             
            }
         
    fseek($fp20SEEK_SET);
     }
    fclose($fp1);
    fclose($fp2);
    ?> 

    как добавить еще 1 файл :)
     
  4. erwert

    erwert New Member

    Joined:
    14 Dec 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    охох.. это же не совсем то, в смысле совсем не то, что вам надо. (=
    Написали бы.. уже.. "напишите за меня скрипт".
    ...
    PHP:
    $fp3=fopen("c.txt""r"); 
    Вот так его добавить (=.
    и соответственно.. блин.. 3-ий вложенный цикл сделать.
    Т.Е.
    PHP:
    while(не прочитали до конца файл1){
      
    читаем строку из файла 1
      
    while(не прочитали до конца файл2){
          
    читаем строку из файла 2
          
    while(не прочитали до конца файл3){
            
    читаем строку из файла 3.
            выводим куда
    -надо.. или записываем в какой-нибудь файл.
          }
       }
    }
     
    #4 erwert, 22 Dec 2011
    Last edited: 22 Dec 2011
  5. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    :) Написали бы.. уже.. "напишите за меня скрипт".

    так и есть - я так глубоко в пшп не разбираюсь... помоги пожалуйста :rolleyes:
     
  6. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    PHP:
    <?php
    $f1
    =file("1.txt");
    $f2=file("2.txt");
    $f3=file("3.txt");
    $r1=array_rand($f1);
    echo 
    $f1[$r1];
    $r2=array_rand($f2);
    echo 
    $f2[$r2];
    $r3=array_rand($f3);
    echo 
    $f3[$r3];
    ?>
     
  7. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0

    а почему только одно значение? можно задать какуюнить переменную в которой можно указать число нужных значений? :)

    как сдлеать цикл? на 1000 записий например :)
     
    #7 ufaclub, 22 Dec 2011
    Last edited: 22 Dec 2011
  8. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    PHP:
    <?php

    $c 
    "3";//количество элементов

    $f1=file("1.txt");
    $f2=file("2.txt");
    $f3=file("3.txt");

    $r1=array_rand($f1$c);
    foreach(
    $r1 as $r){
    echo 
    $f1[$r]."\n";
    }
    $r2=array_rand($f2$c);
    foreach(
    $r2 as $r){
    echo 
    $f2[$r]."\n";
    }
    $r3=array_rand($f3$c);
    foreach(
    $r3 as $r){
    echo 
    $f3[$r]."\n";
    }

    ?>
    Поподробнее про цикл.
     
  9. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    ага почти то = только ставлю 90 и все ниче неработает
    т.е лимит какойто есть?

    и хотелось бы перенос строк типа как <br>
    и неправильно теперь мешает.. :(
     
    #9 ufaclub, 22 Dec 2011
    Last edited: 22 Dec 2011
  10. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    PHP:
    <?php

    $count 
    "2";//сколько раз вывести

    $array[]=file("1.txt");
    $array[]=file("2.txt");
    $array[]=file("3.txt");

    while(
    $x++<$count){
    for(
    $i=0;$i<3;$i){$qwe=$i++;
    $rand=rand(0count($array[$qwe])-1);

    echo 
    "word: ".$array[$qwe][$rand]."<br>";

    }
    }

    ?>
     
  11. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    вот теперь спасибо! помог :)
     
Loading...
Similar Threads - смешать строк файлов
  1. GAiN
    Replies:
    3
    Views:
    7,421