0

フレームワークを使用しない場合、ユーザーが動的に作成する可能性のある新しいページの新しい URL を PHP で生成する方法は? たとえば、ユーザーが新しいアカウントを作成したり、新しい記事を投稿したりすると、http://www.a.com/username/article/2011231.phpのように、ユーザーに特定の URL が割り当てられます。私の質問は、特定の番号 2011231 と URL 全体を生成する方法です。

4

2 に答える 2

2

あなたが探しているのはpretty-urlsです

URLリライトを使用する必要があります。

適切なURLで記事をデータベースに保存する必要があります。ユーザーが記事を作成するとしますHow to bake a cake。この記事のかなりのURLをのarticleようにテーブルに保存しますhow-to-bake-a-cake。タイトルをこれらのきれいなURLに変換するためのメカニズムが必要になります

あなたが持っているフロントエンドの発言article.php

のデフォルトの動作article.phpexample.com/article.php?url=how-to-bake-a-cake

で、article.phpprividedprettyurlの記事を見つけて表示します。

今、あなたは.htaccess実際に次のようなURLを持っているのに使用するでしょうexample.com/article/how-to-bake-a-cake

あなたの中で.htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} ^article/(.*)
RewriteRule article.php?url=$1
于 2012-05-10T03:59:36.543 に答える
0

見たところ、その URL は yearmonthday.php という形式の日付で構成されています。それがコピーしたい場合は、 を使用できますdate('Ymd')。一方、増分番号が必要で、記事をデータベースに保存すると仮定すると、INSERTコマンドを実行mysql_insert_id()してから関数を使用して ID を取得します。次に、/username/article/[number].php を、データベースでその記事を検索して表示する PHP ファイルに書き換える Apache の書き換えが必要になります。たとえば、次のようになります。

RewriteEngine On
RewriteRule ^/username/article/(\d*)\.php$ /articles.php?articleid=$1

たとえば、リクエストを受け取り、にhttp://domain.com/username/article/12345.php送信し/articles.php?articleid=12345ます。そこから$_GET["articleid"]、ID が含まれます。ユーザー名を知るためにPHPスクリプトも必要な場合は、これを使用できます。

RewriteEngine On
RewriteRule ^/(.*)/article/(\d*)\.php$ /articles.php?username=$1&articleid=$2

次に$_GET["username"]、ユーザー名と$_GET["articleid"]記事 ID を持ちます。

于 2012-05-10T03:51:26.993 に答える