PHP, htaccess: применить заголовок страницы в URL-адресе

Я хочу применить заголовок страницы HTML в URL-адресе

например, здесь (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 ..

Как я могу это сделать?

EDIT: я думал о htaccess, но я не знаю этого очень хорошо, поэтому учебник поможет в этом ОТНОШЕНИИ.

Related of "PHP, htaccess: применить заголовок страницы в URL-адресе"

Вы можете использовать .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 

Затем вы можете использовать это (или идентификатор, что проще) для извлечения правильного элемента из вашего источника данных:

 // 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'; 

Предполагая, что у вас есть параметр id в URL-адресе какого-либо типа, проще запросить его на основе этого значения. Часть заголовка может использоваться действительно только для того, чтобы сделать читаемый 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>"; ?> 

Возможно, вам придется изменить части этого, например, тире на пробелы или что-то в этом роде. Если это так, используйте функцию str_replace PHP: http://php.net/str_replace

Не уверен, в чем проблема, с которой вы столкнулись, но только в соответствии с тем, что вы говорите в своем посте, это будет:

1.Выберите идентификатор из URL-адреса.
2.Вы ищете в своей базе данных для оригинального названия
3. И затем отобразите его в теге в своем HTML.

Уточните, если у вас есть проблемы с любыми предыдущими пунктами.