Различные вопросы по PHP и MySQL

101K
.
Enter нажат, к чему теперь рыданья…
# Simba (07.12.2017 / 23:47)
Мне кажется в вашем алгоритме у Гриши на телефоне закончилось бабло и он не дозвонился до службы доставки)
Нет, таки дозвонился и прислали новую пачку печенек
Проверил, когда доигрывает последняя ссылка, то обновлённый массив записывается во временный файл и поехали по-новому.
Мне кажется весь твой файл со ссылками способен спустить один пользователь, запустивший плеер.

А он там, этот "пользователь", всего один, это плеер сервера, а уже потом с сервера раздаётся онлайн видео для обычных пользователей) Это типа интернет-телеканал с фильмами.
.
Sitego,
когда доигрывает последняя ссылка, то обновлённый массив записывается во временный файл и поехали по-новому.
Верно )
.
Simba, да, если юзать НЕ сессии, то получается одна коробка для всех юзеров. Но у него, на сколько я понял, коробка одна и есть. Ну или я не правильно понял, хз ...
.
Sitego
Enter нажат, к чему теперь рыданья…
Добавлено: 14.12.2017 / 09:43
# ДоХтор (07.12.2017 / 21:18)
// Массив случайных значений
$array = [
'A',
'B',
'C',
'D',
'E'
];

$arr = 'arr.txt';
$temp = file_exists($arr) ? file($arr, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES)
Всё работает прекрасно, спасибо. Вот теперь решил усовершенствовать скрипт в целом, но не знаю, как правильно поступить с твоим кодом гг.
В общем, идея такова — массив бернётся из названий файлов в папке, которые я получаю при помощи scandir();
По работе твоего кода, сначала считывается массив, записывается во временный файл, затем уже из временного файла берутся файлы для случайного воспроизведения, при этом удаляеся проигранный файл и так до конца, пока не уйдут из списка все файлы и временный файл не перезагрузится по-новому.
Проблема сейчас в том, что этот массив
$array = [
'A',
'B',
'C',
'D',
'E'
];

считывался каждый раз при обращении к скрипту, а сейчас это уже не массив списком в текстовом файле, а сканирование директории и на это хоть и не много, но всё же уходит какая-то секунда, то есть задержка в работе скрипта.

Вот собственно и вопрос, как сделать проверку, чтобы временный файл $arr = 'arr.txt'; проверялся, есть он или нет, доигран до конца или не пустой? И только уже после этого уже выполнять scandir(); либо играть дальше arr.txt
Другими словами, чтобы не сканировать каждый раз директорию.

Добавлено: 14.12.2017 / 10:38
Это типа вот проверка?
$temp = file_exists($arr) ? file($arr, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) : [];
!empty($temp) ?: $temp = $a;

Только не пойму, что и как там проверяется))
.
Я позже буду за ПК, и напишу развернутый ответ.
.
ДоХтор
Sitego, по идее тебе надо в этом варианте подкорректировать путь к папке с файлами, и их расширение (имена файлов писать не нужно) - папка с файлами будет сканироваться один раз, при перезаписи временного файла:
code (+/-)
.
Enter нажат, к чему теперь рыданья…
Добавлено: 14.12.2017 / 15:42
# ДоХтор (14.12.2017 / 15:12)
Sitego, по идее тебе надо в этом варианте подкорректировать путь к папке с файлами, и их расширение (имена файлов писать не нужно)
Так у меня сейчас только путь и прописан, расширения я и не писал. Там же массив после сканирования получается с именами файлов и их расширениями.
А расширения могут быть разными, например: mp4, avi, mkv, ts и так далее, что есть у видеофайлов.

Спасибо, сейчас попробую применить твой код

Добавлено: 14.12.2017 / 15:53
Нет, такой код не работает, там вообще во временный файл одни точки записались, вместо названий файлов с раширениями.

Добавлено: 14.12.2017 / 16:16
В принципе, всё решилось очень просто, спасибо за подсказку. Чтобы не сканировать каждый раз папку я добавил такое условие для проверки arr.txt
$arr = 'arr.txt';

if(!file_exists($arr) || !file_get_contents($arr)){
	$a = scandir('../files');
	$a = array_splice($a, 2);
}

Вроде работает, как нужно)
.
ДоХтор
Sitego, лучше будет заменить пару лишних вызовов функций на обычную проверку:
if (empty($temp)) {
    // Тут ты получаешь свои данные удобным для тебя способом,
    // и сохраняешь их в переменной $temp
    $temp = $твой_массив;
}
Остальной код останется без изменений. ... А то получается, что ты хотел сделать меньше обращений к файловой системе, а в итоге дописал ещё два вызова, гг
.
Sitego, всё вместе будет выглядеть так:
* (+/-)
.
Enter нажат, к чему теперь рыданья…
Добавлено: 14.12.2017 / 22:47
ДоХтор, последний код тоже не работает) Вернее он работает не так как нужно. Он работает только до конца списка файлов, по окончании списка уже нет перезагрузки временного файла, он остаётся всегда пустой. То есть: "кина не будет, электричество кончилось..."

Добавлено: 14.12.2017 / 22:53
А нет, всё нормально, это я криво код написал
Спасибо.
Всего: 7969