PHP,htaccess:在URL中应用页面标题

我想在URL中应用页面HTML标题

例如在这里(stackoverflow)的url是这样的:

http://stackoverflow.com/questions/10000000/get-the-title-of-a-page-url 

您可以看到页面标题的“get-the-title-of-a-page-url”部分

我的意思是当用户去spowpost.php?post = 1

当页面加载时显示的实际URL将是spowpost.php?post = 1 $ title = .. the_title ..

我怎样才能做到这一点?

编辑:我正在考虑htaccess,但我不知道这很好,所以教程将有助于这种情况下..

你可以使用.htaccess来做到这一点。 例如:

 RewriteEngine On RewriteRule ^questions/(\d+)/([az-]+) index.php?id=$1&title=$2 [L] 

你的PHP页面(index.php)接收$_GET[]参数和标题:

 echo $_GET['title']; // get-the-title-of-a-page-url 

然后,您可以使用(或更简单的ID)从数据源中检索正确的项目:

 // Assuming you didn't store the - in the database, replace them with spaces $real_title = str_replace("-", " ", $_GET['title']); $real_title = mysql_real_escape_string($real_title); // Query it with something like SELECT * FROM tbl WHERE LOWER(title) = '$real_title'; 

假设你在某种类型的URL中有一个id参数,那么根据这个值进行查询就比较容易了。 标题部分只能用于制作可读的URL,而不需要在PHP中进行操作。

反过来,为了把标题转换成format-like-this-to-use-in-urls ,请执行以下操作:

 $url_title = strtolower(str_replace(' ', '-', $original_title)); 

以上假设您的标题不包括URL中的任何非法字符…

 $article_link = "http://example.com/spowpost.php?post=$postid&$title=$url_title"; 

或者喂给.htaccess:

 $article_link = "http://example.com/spowpost$postid/$url_title"; 

据我所知,您的标题将作为URL的一部分传递给页面。 要在标题栏中显示它,请将其放在以下部分:

 <?php $title=urldecode($_GET["title"]); echo "<title>$title</title>"; ?> 

您可能需要更改这个部分,例如破折号到空格或其他东西。 如果是这种情况,请使用PHP的str_replace函数: http : //php.net/str_replace

不知道你面临的问题是什么,只是根据你在帖子中所说的话:

1.您从URL中获取ID。
你在数据库中搜索原始标题
3.然后将其显示在HTML中的标记中。

澄清如果您有任何以前的问题的问题。