2009-07-30 10 views
3

たとえば、vimeo.comでは、各動画にID番号が割り当てられています。その動画を表示するには、vimeo.com/2847535などに移動します。データベース内の各ビデオに別々のディレクトリを作成し、そのIDをURLから取得するにはどうすればよいですか?

はのは、私は、ユーザーがビデオを追加するたびに、それはユニークなIDが割り当てられている似たようなサイトを持っているとしましょう。ビデオをデータベースに追加した後、そのID番号のディレクトリを作成するにはどうすればよいですか?

また、ビデオがデータベースに作成され、ディレクトリが作成されたら、ユーザーがwww.example.com/38540305にアクセスしたときに読み込まれるPHPページに適切なビデオを表示する必要があります。質問は、URLから動画IDを引き出すにはどうすればいいですか?私は、URLが_GETを使用してwww.example.com/video.php?38540305のように見えるときにそれを行う方法を知っているが、私はそれがないと動作するとは思いません「?」リソースまたはコードへ

リンクは、大歓迎します!代わりに、各ビデオのためのディレクトリを作成する

答えて

9

、あなたはvideo.phpする] www.example.com/[numbersのような任意のURLをマップするためにmod_rewriteを使用することができます。これを行うには、WebサーバーとしてApacheが必要であることに注意してください。

.htaccessファイル(またはディレクトリもしくはバーチャルホストの下のapacheの設定ファイル)に

RewriteEngine On 
#check path is not a file 
RewriteCond %{REQUEST_FILENAME} !-f 
#check path is not a directory 
RewriteCond %{REQUEST_FILENAME} !-d 
#redirect any numeric path to video.php 
RewriteRule ^([0-9]+)$ video.php?id=$1 [L] 

これで動画IDを取得するために$_GET[id']を使用することができます。

直接あなたの最初の質問に答えるために、あなたは可能性が最後に挿入IDを取得するために、レコードコールmysql_insert_id()(または同等のもの)を挿入した後。あなたは明らかにmkdir()を使ってディレクトリを作成することができます。これは、各ディレクトリ内にindex.phpファイルを作成しないかぎり、まだ動作しません。

2

あなたは、このためのmod_rewriteを使用したいしようとしています。このような何か:

 
RewriteEngine On 
RewriteRule ^([\-_0-9A-Za-z]+)$ index.php?a=$1 [L] 
You can customize RewriteRule as much as you want. 

THSが '/' の後にURLを書き換える必要があり、その代わりに、それはindex.phpに行く=パス

関連する問題