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

时间:2012-02-07 20:09:02

标签: php apache .htaccess mod-rewrite

我想在网址

中应用网页HTML标题

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

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

你可以看到“get-the-title-of-page-url”部分是页面标题

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

页面加载时显示的实际网址 spowpost.php?交= 1 $标题= .. the_title ..

我该怎么做?

编辑:我正在考虑htaccess,但我不太了解这个,所以教程对这个例子有帮助。

3 个答案:

答案 0 :(得分:5)

你可以使用.htaccess。例如:

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

您的PHP页面(index.php)在$_GET[]中接收id和title作为参数:

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";

答案 1 :(得分:1)

根据我的理解,您的标题将作为网址的一部分传递到网页。要在标题栏中显示它,请将其放在以下部分中:

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

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

答案 2 :(得分:0)

不确定您遇到的问题是什么,但根据您在帖子中的说法,anwser会是:

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

澄清您是否有任何前面的问题。