繁体   English   中英

如何为数据库中的每个视频创建单独的目录并从URL中提取其ID?

[英]How do I create a separate directory for each video in a database and pull its ID from the URL?

例如 - 在vimeo.com上,每个视频都有一个ID号。 要查看该视频,您只需导航到vimeo.com/2847535或其他任何内容。

假设我有一个类似的网站,每次用户添加视频时,都会为其分配一个唯一的ID。 将视频添加到数据库后,如何创建具有该ID号的目录?

此外,一旦视频在数据库中并且目录已经创建,现在我必须在用户访问www.example.com/38540305时加载的php页面上显示正确的视频...我的第二个问题是,如何从网址中提取视频ID? 我知道当网址使用_GET看起来像www.example.com/video.php?38540305时该怎么做,但我不认为没有“?”

链接到资源或代码非常感谢!

您可以使用mod_rewrite将任何网址(如www.example.com/ [numbers])映射到video.php,而不是为每个视频创建目录。 请注意,您需要Apache作为您的Web服务器来执行此操作。

例如在.htaccess文件中(或目录或vhost下的apache配置文件)

RewriteEngine On
#check path is not a file
RewriteCond %{REQUEST_FILENAME} !-f
#check path is not a directory
RewriteCond %{REQUEST_FILENAME} !-d
#redirect any numeric path to video.php
RewriteRule ^([0-9]+)$ video.php?id=$1 [L]

您现在可以使用$_GET[id']来获取视频ID。

要直接回答第一个问题,可以在插入记录调用mysql_insert_id() (或等效mysql_insert_id() )后获取最后插入的id。 然后你可以使用mkdir()来创建你的目录。 除非您在每个目录中创建了一个index.php文件,否则这仍然无效。

您将要使用mod_rewrite。 像这样的东西:

RewriteEngine On
RewriteRule ^([\-_0-9A-Za-z]+)$  index.php?a=$1 [L]
You can customize RewriteRule as much as you want.

应该在'/'之后重写URL,所以它转到index.php?a = path

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM