from flask import Flask, redirect, url_for, request
import random
import string
app = Flask(__name__)
rooms = {} # здесь будем хранить комнаты и игроков, которые к ним подключились
def generate_room_code(): # функция генерация id комнаты
return ''.join(random.choices(string.ascii_uppercase, k=4))
@app.route('/')
def index(): # тут делаем стартовую страницу. Сейчас это зашито прямо в скрипт, но можно возвращать файл
return '''
<!doctype html>
<html>
<head>
<title>Новая игра</title>
</head>
<body>
<h1>Добро пожаловать!</h1>
<a href="/start">Начать новую игру</a>
</body>
</html>
'''
@app.route('/start')
def start(): # это будет выполняться после нажатия на ссылку "Начать игру"
room_code = generate_room_code()
rooms[room_code] = [] # тут добавляем id комнаты. Список пустой, т. к. игроков ещё нет
return redirect(url_for('waiting_room', room_code=room_code)) # перенаправляем пользователя в комнату
@app.route('/waiting/<room_code>')
def waiting_room(room_code): # тут делаем комнату.
if room_code not in rooms:
return "Not found", 404 # если нет такой комнаты
return f'''
<!doctype html>
<html>
<head>
<title>Комната</title>
</head>
<body>
<h1>Комната {room_code}</h1>
<form action="/join" method="post">
<input type="hidden" name="room_code" value="{room_code}">
<input type="text" name="player_name" placeholder="Имя">
<button type="submit">Присоединиться</button>
</form>
<h2>Игроки:</h2>
<ul>
{''.join([f'<li>{player}</li>' for player in rooms[room_code]])}
</ul>
</body>
</html>
'''
@app.route('/join', methods=['POST'])
def join_room(): # обрабатываем запрос на присоединение
room_code = request.form['room_code']
player_name = request.form['player_name']
if room_code in rooms:
# добавляем игрока и перенаправляем его обратно
rooms[room_code].append(player_name)
return redirect(url_for('waiting_room', room_code=room_code))
return "Not found", 404
if __name__ == '__main__':
app.run(debug=True)
if ($dh = opendir($dir))
{
// код, который у вас в вопросе
}
if (is_file($dir.$file)) {
// код из вопроса
}
else if(is_dir($dir.$file))
{
$zip->addEmptyDir($dir.$file);
// тут должен быть вызов рекурсивной функции, по которой вы передаете контекст $zip и $dir.$file (наверное, передача по ссылке)
}
The overflow CSS shorthand property sets the desired behavior when content does not fit in the element's padding box (overflows) in the horizontal and/or vertical direction.
- visible
Overflow content is not clipped and may be visible outside the element's padding box. The element box is not a scroll container. This is the default value of the overflow property.