如何使用内置Web服务器返回.php文件的内容,url中没有.php扩展名
所以我刚开始学习PHP,我正在做一个本地项目来测试它 我正在使用内置的Web服务器 使用命令如何使用内置Web服务器返回.php文件的内容,url中没有.php扩展名,php,Php,所以我刚开始学习PHP,我正在做一个本地项目来测试它 我正在使用内置的Web服务器 使用命令php-S localhost:8000 router.php 我想导航到test.php文件,它位于index.php文件旁边http://localhost:8000/test 但只有使用http://localhost:8000/test.php 在内置Web服务器页面上,它提到了如何为.el文件提供服务 从那以后我想到了 <?php // router.php $pathName = $_S
php-S localhost:8000 router.php
我想导航到test.php文件,它位于index.php文件旁边http://localhost:8000/test
但只有使用http://localhost:8000/test.php
在内置Web服务器页面上,它提到了如何为.el文件提供服务
从那以后我想到了
<?php
// router.php
$pathName = $_SERVER['REQUEST_URI'];
$pathName = str_replace("/", "\\", $pathName);
$file = __DIR__ . $pathName . ".php";
if(file_exists($file)){
include($file);
}else{
return false;
}
?>
您的router.php几乎是正确的
如果要显示php文件的内容,请像下面这样使用readfile:
<?php
// router.php
$script = $_SERVER["REQUEST_URI"];
$path = pathinfo($script);
if (empty($path["extension"])) {
$php = ".$script.php";
if(file_exists($php)){
readfile($php);
}else{
return FALSE;
}
}else{
return FALSE;
}
?>
<?php
// router.php
$script = $_SERVER["REQUEST_URI"];
$path = pathinfo($script);
if (empty($path["extension"])) {
$php = ".$script.php";
if(file_exists($php)){
include($php);
}else{
return FALSE;
}
}else{
return FALSE;
}
?>
当不带扩展名的access存在时,这将返回PHP文件的内容。并在不存在或无法通过扩展访问时正常运行
或者,如果要运行php文件,请像下面这样使用include:
<?php
// router.php
$script = $_SERVER["REQUEST_URI"];
$path = pathinfo($script);
if (empty($path["extension"])) {
$php = ".$script.php";
if(file_exists($php)){
readfile($php);
}else{
return FALSE;
}
}else{
return FALSE;
}
?>
<?php
// router.php
$script = $_SERVER["REQUEST_URI"];
$path = pathinfo($script);
if (empty($path["extension"])) {
$php = ".$script.php";
if(file_exists($php)){
include($php);
}else{
return FALSE;
}
}else{
return FALSE;
}
?>
当access不带扩展且存在时,这将返回PHP脚本的输出。并在不存在或无法通过扩展访问时正常运行
顺便说一句,只使用内置服务器进行测试,不向公众公开安全信息。@除非在使用内置web服务器时不能使用.htaccess
文件:)@riggsfully Ah;我的错。我从来没有使用过内置的。这可能会有帮助,或者事实上可能是一个错误DUP@RiggsFolly这似乎不是同一个问题,但我使用router.php文件来实现我的目标似乎是正确的。我确实想要“include”功能,但是您检查文件是否存在的方法似乎比我的字符串替换方法要好。如果您将readfile更改为再次包含,我将接受您的回答。