大家好,我是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'];
不能理解这个正则表达式是如何工作的?h= 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"