Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Random-fgets


Автор: ekodrive 14.7.2006, 17:16
Нуу думаю немношка тупой вопрос но мне это очень надо 
ну короче есть файл
****data.txt****
внутри 

text 1 //первое строка
text2 //2 stroka
text3 //3-stroka
text4 //4
text5 //5
**** i dalee


ну вот хочу чтоб в файле индех выводилось случайные строки файла data.txt .Искал по форуму но ниче не нашел комментов не нуждаетса тeма нуждаетса в помоши кто знает help pls  smile   

Автор: UzerPHp 14.7.2006, 19:20
Собственно есть такая идея.... 
Код

<?php
$textFile="db.txt";
$textMass=file($textFile);
$i=rand(0,count($textMass));
echo ("RAndom string ". $textMass[$i]);

?>
 

Автор: ZlojEzh 14.7.2006, 19:35
если надо выбрать несколько строк без повторений - удобнее будет такой способ:
Код

  $rand_lines_num = 3;
  $lines = file('data.txt');
  $rand_keys = array_rand($lines, $rand_lines_num);

  foreach ($rand_keys as $k) {
    print $lines[$k]."\n";
  }
  

Автор: ekodrive 14.7.2006, 20:05
Код

<?php
$textFile="db.txt";
$textMass=file($textFile);
$i=rand(0,count($textMass));
echo ("RAndom string ". $textMass[$i]);

?>


ну этот код тот который мне нужен спосибо вам обоим но есть адно "но" ну как сказать  когда  нажимаю f5 ну все работает как нада но один раз он выдает пустую строку вот демо 

http://www.ekodrive.com/lom/index.php 

Автор: ZlojEzh 14.7.2006, 20:58
стоит проверить - нет ли пустой строки в конце файла
 

Автор: UzerPHp 14.7.2006, 21:00
Да извеняюся моя ошибочка вышла....  smile 
вот так должно быть 
Код

$i=rand(0,count($textMass)-1);


просто нумерация массива начинаеться с нуля, а функция count() берёт общее кол-во элементов начия с единицы.... вот теперь отняв единицу все елементы выбирает правильно. А до этого был последний пустой элемент(  

p.s да и кончено про пустые строки не стоит забывать... если в файле есть то они тоже могут выбираться( 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)