【问题标题】:How do I create a separate directory for each video in a database and pull its ID from the URL?如何为数据库中的每个视频创建一个单独的目录并从 URL 中提取其 ID?
【发布时间】:2009-07-30 15:22:41
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php url


    【解决方案1】:

    您可以使用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()(或等效项)以获取最后插入的 id。然后您显然可以使用mkdir() 创建您的目录。除非您在每个目录中创建一个 index.php 文件,否则这仍然行不通。

    【讨论】:

      【解决方案2】:

      您将要为此使用 mod_rewrite。像这样的:

      重写引擎开启 RewriteRule ^([\-_0-9A-Za-z]+)$ index.php?a=$1 [L] 您可以根据需要自定义 RewriteRule。

      这应该在“/”之后重写 URL,所以改为 index.php?a=path

      【讨论】:

        猜你喜欢
        • 2023-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-21
        • 2019-11-18
        • 1970-01-01
        • 2023-01-18
        • 1970-01-01
        相关资源
        最近更新 更多