PHP Regex rewrite.something to.PHP
我有一个php脚本:PHP Regex rewrite.something to.PHP,php,regex,Php,Regex,我有一个php脚本: <?php if(isset($_GET['p'])) { $allowedPages = array(); $openDir = opendir('./pages/'); while(false !== ($entry = readdir($openDir))) { $allowedPages[] = $entry; } closedir($openDir); preg_replace('~\..
<?php
if(isset($_GET['p'])) {
$allowedPages = array();
$openDir = opendir('./pages/');
while(false !== ($entry = readdir($openDir))) {
$allowedPages[] = $entry;
}
closedir($openDir);
preg_replace('~\..*~', '.php', $_GET['p']);
echo $_GET['p'];
if(in_array($_GET['p'], $allowedPages)) {
include './pages/'.$_GET['p'];
} else {
echo '404';
}
}
?>
我想要的是,如果您访问mysite.com/?p=test.html,test.html应该重写为test.php,但它不起作用
它在RegExr上工作:
如何修复
更新:
如何将索引重写为index.php?回答第二部分:
preg_replace('/([^.]+)(?:\.[^.]+)?$/', "$1.php", $string);