正则表达式php混淆视频网址

时间:2016-11-14 04:05:06

标签: php

你好,我是PHP的初学者。 我读过这篇文章http://flowplayer.blacktrash.org/secure-http.html 而且我不理解htaccess文件

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

和这个php文件

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

无法理解此RegEx如何工作?什么是h = $ 1?

1 个答案:

答案 0 :(得分:1)

这更像是Apache / Regex问题,而不是PHP。

要回答这个问题,请在内部正则表达式括号"捕获"里面配的是什么。 $ 1,$ 2,$ 3 将替换为使用括号捕获的内容。在您的示例中,(.*)将匹配任何字符。

例如,如果提供了food/fruit/apples,它将被重写(由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"