Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据文章的日期和标题设置博客文章的永久链接?_Php_Mysql_.htaccess - Fatal编程技术网

Php 如何根据文章的日期和标题设置博客文章的永久链接?

Php 如何根据文章的日期和标题设置博客文章的永久链接?,php,mysql,.htaccess,Php,Mysql,.htaccess,我有这个网站。我的博客帖子链接设置如下。我希望它设置成这样。。。finalyerondesk.com/2011/09/22/how-to-recover-ubuntu-after-it-is-crash/ 我正在使用以下函数获取这些帖子 function get_content($id = '') { if($id != ""): $id = mysql_real_escape_string($id); $sql = "SELECT * from cms

我有这个网站。我的博客帖子链接设置如下。我希望它设置成这样。。。finalyerondesk.com/2011/09/22/how-to-recover-ubuntu-after-it-is-crash/

我正在使用以下函数获取这些帖子

function get_content($id = '') {

    if($id != ""):
        $id = mysql_real_escape_string($id);
        $sql = "SELECT * from cms_content WHERE id = '$id'";
        $return = '<p><a href="http://www.finalyearondesk.com/">Go back to Home page</a></p>';
        echo $return;

    else:
        $sql = "select * from cms_content ORDER BY id DESC";

    endif;

    $res = mysql_query($sql) or die(mysql_error());

    if(mysql_num_rows($res) != 0):

        while($row = mysql_fetch_assoc($res)) {
            echo '<h1><a href="index.php?id=' . $row['id'] . '">' . $row['title'] . '</a></h1>';
            echo '<p>' . "By: " . '<font color="orange">' . $row['author'] . '</font>' . ", Posted on: " . $row['date'] . '<p>';
            echo '<p>' . $row['body'] . '</p><br />';
        }

    else:

        echo '<p>We are really very sorry, this page does not exist!</p>';

    endif;
}
函数get_content($id=''){ 如果($id!=“”): $id=mysql\u real\u escape\u字符串($id); $sql=“从cms_内容中选择*,其中id='$id'; $return='

'; 回音$return; 其他: $sql=“按id描述从cms\U内容顺序中选择*”; endif; $res=mysql\u query($sql)或die(mysql\u error()); 如果(mysql_num_rows($res)!=0): while($row=mysql\u fetch\u assoc($res)){ 回声'; 回应“”,作者:“$row['author'].”,发布于:“$row['date'].”; 回显“”.$row['body']”。


; } 其他: echo'我们真的非常抱歉,此页面不存在!

; endif; } 我正在使用这段代码在index.php页面上显示它

<?php
    if (isset($_GET['id'])) :
        $obj -> get_content($_GET['id']);
    else :
        $obj -> get_content_summary();
    endif;
?>


有什么建议吗?我们可以使用.htaccess来实现这一点吗?

使用mod_rewrite的不幸之处在于,以url形式提供的数据并不是查询数据库的最佳方式。但是,您仍然有年、月、日和标题变量,因此您需要重写get_content函数以查询类似的内容(取决于日期在数据库中的存储方式):

.htaccess将类似于:

RewriteRule ^(.*)/(.*)/(.*)/(.*)$  index.php?year=$1&month=$2&day=$3&title=$4

如果你的服务器上启用了mod_rewrite,那么你可以在.htaccess中使用它。但是这会是一篇文章吗?或者告诉我怎么做?wordpress是怎么做到的?我从来没有和wordpress合作过,所以我不知道。你熟悉正则表达式吗?您可以使用正则表达式捕获组的重写规则来实现这一点。看到这个,我想达到这样的效果,您也可以考虑实际检查,我没有列年、月、日。相反,我有一个名为“date”的列作为时间戳。那么现在怎么做呢?
RewriteRule ^(.*)/(.*)/(.*)/(.*)$  index.php?year=$1&month=$2&day=$3&title=$4