Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка Notice: Undefined offset: 0, Ошибка возникает при работе скрипта 
:(
    Опции темы
helken
Дата 22.1.2017, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.1.2017

Репутация: нет
Всего: нет



Добрый день!

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

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

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

Notice: Undefined offset: 0 on line 16

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

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

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

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

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

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

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

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

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

Код

<?php
//указываем папку с файлами
$folder = 'полный путь к папке с txt файлами';
$files = array();

$files = scandir($folder);

//выбираем случайный файл из папки
$files_rand = $files[rand(0,sizeof($files)-1)];

//выбираем случайную строку из файла
$all_str = file($folder.'/'.$files_rand);
$i = rand(0,sizeof($all_str)-1);

//выводим строку
echo $all_str[$i]; 

?>


ЗАРАНЕЕ БЛАГОДАРЕН!
PM MAIL WWW   Вверх
_zorn_
Дата 24.1.2017, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



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

Неопытный пишется вместе. 
То что ты просишь, обычно называется поддержка. 
Чтобы те люди кому ты заплатил разжевали то что ты хочеш и почему у тебя не получается. Вобщем сам делай выводы и т.п.
Если сильно надо - могу помочь.
PM MAIL   Вверх
Fortop
Дата 24.1.2017, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата

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


Можно и с БД

Основная проблема в том, что периодически файл не открывается. 
В результате там где написано "выводим строку" находится не массив и нет элемента с индексом 0


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Смешная
Дата 27.2.2017, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.2.2017

Репутация: нет
Всего: нет



Конечно если "неопытный" то довольно таки сложно найти ошибку в том чего толком не понимаешь. Именно поэтому я работаю с компанией http://wezom.ru/sozdanie-sajta-kataloga и даже не сомневаюсь в том что будет все в порядке!
Автору удачи!!

Это сообщение отредактировал(а) Смешная - 28.2.2017, 15:05
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1371 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.