«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/08/05 19:11:26  №1448614 1
Ответы: >>1475117
Аноним 2019/09/17 08:22:03  №1475117 2
Напомню себе, как будет время, проверить из предыдущего треда:

- https://github.com/asdasdasdasddasasdasdas/StudentList из >>1448614
- https://github.com/baraboolka/StudentList из >>1460026
- https://github.com/hikkej/student_list из >>1460537
- https://github.com/asdasdasdasddasasdasdas/Filesharing из >>1462815
- github.com/deadj/student-list/ из >>1466025

Если я кого-то еще пропустил или не ответил, можно напомнить о себе в этом треде.
Ответы: >>1475121 >>1475571 >>1487334
Аноним 2019/09/17 08:27:04  №1475121 3
>>1475117
Спасибо, оп, ты занят богоугодным делом
someApprentice 2019/09/17 18:14:53  №1475571 4
Ответы: >>1506930
Аноним 2019/10/02 15:56:18  №1487334 5
Ответы: >>1506928
Аноним 2019/10/27 16:55:49  №1506928 6
>>1487334
>>1487333

Чтобы переносы строк нормально работали и в браузере и в ideone (и в консоли), можно использовать для этого \n, а в начале программы поставить

header("Content-Type: text/plain; charset=utf-8");

Это заставит браузер воспринимать то, что выводит твоя программа, как обычный текст, а не HTML, и уважать переносы строк в нем (так как в языке HTML перенос строки равносилен пробелу).

Далее, ты выводишь весь текст в одну длинную колонку. Но надо сделать по-другому. Сначала ты выводишь в строчку все первые буквы из всех строк, затем перевод строки, затем все вторые буквы и так далее.

>>1487190

В простом варианте решения ты просто копипастишь код:

сгенерировать первое слово из первого массива;
сгенерировать второе слово из второго массива;
....

Мы можем попробовать избавиться от копипасты, сделав массив с вариантами выбора, обходя этот массив в цикле и из каждого варианта выбирая одно слово случайно:

шаблон = [
[массив вариантов для первого слова],
[варианты для второго слова],
....
];

Для (каждого списка из шаблона) {
слово = выбрать одно слово из списка;
вывести слово;
}

Логика понятна? Там потом надо будет еще добавить переводы строк и пробелы, но это уже не так сложно.
Аноним 2019/10/27 16:58:42  №1506930 7
>>1478771

Поставить на страницу невидимый тег audio и яваскриптом запускать проигрывание.

>>1475161

Если он под свободной лицензией и ты не выдаешь его за свой, а оставил копирайты автора, то проблем нет. А вот если ты обманываешь людей, то это конечно плохо.

>>1461363
>>1475571

> А как составлять URL на основе идентификатора?
> Изначально я хотел чтобы URL хранил в себе относительную ссылку от сервера, а в клиенте (то есть в html версии где строится ссылка), если меняется адрес хранилища, просто менять адрес хранилища в ссылках.

Да, это один из вариантов, хранить в БД относительный путь вроде '2019-06-01/file123.jpg' и из него формировать полную ссылку.

> Как лучше проектировать схему? Например, я сейчас могу хранить ключи прямо в таблице user добавив соответствующие поля, но в будущем может понадобится чтобы у одного пользователя/конференции могло быть несколько ключей, и для этого нужно делать отдельную таблицу.

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

> Лучше сразу на будущее делать таблицу, или можно оставить просто?

Не надо делать то, что сейчас не требуется.

> А если пользователей миллионы, это не будет времяёмкой задачей? Как обычно поступают в таких ситуациях?

Пишут скрипт миграции, мигрируют данные, выкладывают код, который начинает работать с новой таблицей, затем домигрируют то, что могло добавиться или измениться до выкладывания кода. Ничего необычного, если у тебя один сервер, то это просто запустить команду в консоли. Если много серверов с БД - то каким-нибудь инструментом вроде ansible запускаем скрипты миграции на всех сразу.


> В случае conference_reference:
> "user" - это пользователь которому принадлежит ссылка на конференцию
> В случае с participant:
> "user" - это конкретный получатель в конференции
> То есть, пользователь может удалить свою ссылку на конференцию, но всё равно оставаться получателем и получать уведомления.

Это выглядит как-то запутанно. Видимо, тут речь о том, что пользователь может вступить в конференцию, отправить в нее сообщение, выйти из нее, удалить conference_reference, а сообщение и его автор должны остаться? Не проще ли в таком случае вместо удаления записи просто сделать soft delete (флаг, показывающий, что запись удалена и конференция невидима в списке контактов)?

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

> Таблица собеседников нужна для хранения всех собеседников в той или иной конференции.

А список участников нельзя получить из conference_reference по id конференции?