使用 php 空文件名的多人游戏?
multiplayer games using php empty file name?
海伊
所以我想在php上做一个多人游戏,我采用了运行domly生成link的方法。
例如像 skribbl.io 游戏,按下“创建私人房间”后,会创建一个 运行dom link 供您的朋友加入:
skribbl.io/?random_string
like skribbl.io/?h4fwY8Ef
所以对我来说,他们似乎有一个没有名称的 php 文件,他们提供 运行dom 字符串作为参数。
但是我无法制作一个没有名字的 php 文件。
所以我选择的是,每次用户点击我的游戏的“创建私人比赛”时,php 脚本将复制包含服务器端工作的现有 php 脚本但将它命名为 random_string.php 就像 y4aHr329sJ.php
这样玩家会在 url 中写下:
mygame.com/y4aHr329sJ
(没有 .php 因为 apache .htaccess 规则)
但缺点是对于每个想要“创建私人房间”的人来说,我会在服务器上复制更多不必要的文件。
甚至认为我有一个脚本可以在游戏过期后删除所有过期的 random_string.php 文件(在一天的每个开始时,脚本都是 运行 并删除 1 天前的文件)
我仍然认为这会适得其反。
顺便说一句,我知道做类似 mygame.com/join?random_string
的事情,但我不是特别喜欢它。
我也不喜欢 apache .htaccess 自动将 mygame.com/random_string
变成 mygame.com/join?random_string
因为有些玩家喜欢从地址栏复制 link 而不是从“分享这个link”框。
另外,如果有 skribbl.io 在 skribbl.io/*?*random_string
中使用的没有问号的解决方案,我会更喜欢它。
您的帮助意义重大。
提前致谢!!
实际上,您在根文件夹中有一个 index.php 文件,但可以将 apache 配置为将其隐藏在 URL 中。
您可以通过将这些配置(在项目根目录或 vhost 配置中的 .htaccess
中)
并且您需要启用 mod_rewrite
。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/ [L]
如果您想保留 index.html,您可能需要创建如下路径:
/rooms/random-room-name
并像这样处理房间:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/rooms/(.*)$ /index.php?room= [L]
海伊
所以我想在php上做一个多人游戏,我采用了运行domly生成link的方法。
例如像 skribbl.io 游戏,按下“创建私人房间”后,会创建一个 运行dom link 供您的朋友加入:
skribbl.io/?random_string
like skribbl.io/?h4fwY8Ef
所以对我来说,他们似乎有一个没有名称的 php 文件,他们提供 运行dom 字符串作为参数。 但是我无法制作一个没有名字的 php 文件。
所以我选择的是,每次用户点击我的游戏的“创建私人比赛”时,php 脚本将复制包含服务器端工作的现有 php 脚本但将它命名为 random_string.php 就像 y4aHr329sJ.php
这样玩家会在 url 中写下:
mygame.com/y4aHr329sJ
(没有 .php 因为 apache .htaccess 规则)
但缺点是对于每个想要“创建私人房间”的人来说,我会在服务器上复制更多不必要的文件。
甚至认为我有一个脚本可以在游戏过期后删除所有过期的 random_string.php 文件(在一天的每个开始时,脚本都是 运行 并删除 1 天前的文件)
我仍然认为这会适得其反。
顺便说一句,我知道做类似 mygame.com/join?random_string
的事情,但我不是特别喜欢它。
我也不喜欢 apache .htaccess 自动将 mygame.com/random_string
变成 mygame.com/join?random_string
因为有些玩家喜欢从地址栏复制 link 而不是从“分享这个link”框。
另外,如果有 skribbl.io 在 skribbl.io/*?*random_string
中使用的没有问号的解决方案,我会更喜欢它。
您的帮助意义重大。 提前致谢!!
实际上,您在根文件夹中有一个 index.php 文件,但可以将 apache 配置为将其隐藏在 URL 中。
您可以通过将这些配置(在项目根目录或 vhost 配置中的 .htaccess
中)
并且您需要启用 mod_rewrite
。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/ [L]
如果您想保留 index.html,您可能需要创建如下路径:
/rooms/random-room-name
并像这样处理房间:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/rooms/(.*)$ /index.php?room= [L]