2016-11-14 6 views
0

こんにちは私はPHPの初心者です。 私はこの記事http://flowplayer.blacktrash.org/secure-http.html を読んで、私はhtaccessのファイルを理解していないregex php難読化ビデオのURL

RewriteRule ^(.*)/(.*)/(.*)$ video.php?h=$1&t=$2&v=$3 

と、このPHPファイル

$hash = $_GET['h']; 
$streamname = $_GET['v']; 
$timestamp = $_GET['t']; 

は、この正規表現が動作しない方法を理解できないのですか? h = $ 1とは何ですか?

答えて

1

これは、PHPではなくApache/Regexの質問です。

質問に答えるには、正規表現の中でカッコで囲んで内部で一致するものを「キャプチャ」します。 $ 1、$ 2、$ 3は、かっこで取り込まれたものに置き換えられます。あなたの例では、(.*)は任意の文字を任意の回数繰り返します。

たとえば、food/fruit/applesが提供された場合、Apacheによって(Apacheによって)video.php?h=food&t=fruit&v=applesに書き換えられます。 PHPがリクエストを受け取ると、h、t、vというGETパラメータが引き出され、変数に割り当てられます。

$hash = $_GET['h'];  // value: "food" 
$timestamp = $_GET['t']; // value: "fruit" 
$streamname = $_GET['v']; // value: "apples"