Как считать с файла .txt рандомную строку на php?

Пользователь

от elian.swift , в категории: PHP , 2 года назад

Как считать с файла .txt рандомную строку на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от forest , 2 года назад

@elian.swift 

Чтение случайной строки из текстового файла в PHP можно осуществить следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
// Открываем файл
$file = fopen("file.txt", "r");

// Получаем количество строк в файле
$line_count = 0;
while (!feof($file)) {
  $line = fgets($file);
  $line_count++;
}

// Генерируем случайное число для выбора строки
$random_line_number = rand(1, $line_count);

// Сбрасываем указатель на начало файла
rewind($file);

// Считываем случайную строку
$current_line_number = 0;
while (!feof($file)) {
  $line = fgets($file);
  $current_line_number++;
  if ($current_line_number == $random_line_number) {
    echo $line;
    break;
  }
}

// Закрываем файл
fclose($file);
?>


В этом примере мы открываем файл file.txt и считываем количество строк в нем, затем генерируем случайное число от 1 до количества строк и считываем эту строку с помощью цикла while и функции fgets(). Затем мы выводим эту строку на экран и закрываем файл.


Обратите внимание, что в этом примере мы используем функцию rewind() для сброса указателя на начало файла перед чтением случайной строки. Если этого не сделать, то второй цикл while не сможет прочитать строки из файла.