Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибка Notice: Undefined offset: 0

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ошибка возникает при работе скрипта
helken
Отправлено: 22 Января, 2017 - 08:17:39
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Добрый день!

Я не опытный программист, требуется небольшая помощь в решении ситауции!

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

Данный скрипт работает, но время от времени выдает ошибку:

Notice: Undefined offset: 0 on line 16

Итак, как работает скрипт:

1. Он берет список файлов из определенной папки и случайным образом выбирает один файл (в папке содержится около 2000 текстовых файлов, количество файлов постоянно меняется)
2. Из выбранного файла он берет случайную строку (все файлы разного размера с разным количеством строк, но в основном размер файлов колеблется от 5 Мб. до 50 Мб.)
3. Полученную строку он выводит на экран монитора.

Я прекрасно понимаю, что Notice - это не ошибка а предупреждение и ее можно смело заглушить, но проблема в том, что при возникновении этого предупреждения ничего на экран не выводится а нам требуется чтобы всегда выводилась случайная строка из файла при каждом перезагрузке страницы.

Я перерыл большое количество литературы и читал много ответов по этой "ОШИБКЕ" но ничего не могу сделать.

Пробовал оборачивать в Get и POST но результатов не дало.

Возможно есть другое решение или может ктото посоветует использовать какойто другой движок для сайта случайного вывода.

Забегая вперед скажу, что база строк занимает 10 Гб. Т.е. выборку нужно делать из 10 Гб. текстовых строк разной длины.

Возможно есть какоето решение с базой данных mysql или какойто движок сайта, который можно использовать под данную задачу?

А Вот и сам код:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. //указываем папку с файлами
  4. $folder = 'полный путь к папке с txt файлами';
  5. $files = array();
  6. $files = scandir($folder);
  7. //выбираем случайный файл из папки
  8. $files_rand = $files[rand(0,sizeof($files)-1)];
  9. //выбираем случайную строку из файла
  10. $all_str = file($folder.'/'.$files_rand);
  11. $i = rand(0,sizeof($all_str)-1);
  12. //выводим строку
  13. echo $all_str[$i];
  14. ?>
  15.  


ЗАРАНЕЕ БЛАГОДАРЕН!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB