亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用內置網絡服務器返回 .php 文件的內容,網址中不帶 .php 擴展名

如何使用內置網絡服務器返回 .php 文件的內容,網址中不帶 .php 擴展名

PHP
哈士奇WWW 2023-07-07 10:37:17
所以我剛剛開始學習 PHP,并且正在制作一個本地項目來測試它。我正在使用內置的網絡服務器 https://www.php.net/manual/en/features.commandline.webserver.php 使用命令php -S localhost:8000 router.php我想導航到我的 test.php 文件,該文件位于我的 index.php 文件旁邊http://localhost:8000/test但只有當我使用時它才有效http://localhost:8000/test.php在內置的網絡服務器頁面上,它提到了如何提供 .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;       }?>但這似乎不對。我該如何以正確的方式去做呢?有人能指出我正確的方向嗎?在 stackoverflow 上找不到任何內容,但這可能只是因為我不知道要搜索什么。編輯:我確實想要包含功能而不是讀取文件,我只是想知道檢查 .php 文件是否存在的方法是否正確。
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

你的 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 文件的內容。當它不存在或通過擴展訪問時正常運行。


或者,如果您想運行 php 文件,請使用include ,如下所示:


<?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;

}

?>

當沒有擴展名訪問且存在時,這將返回 PHP 腳本的輸出。當它不存在或通過擴展訪問時正常運行。


順便說一句,僅使用內置服務器進行測試,而不是為了安全而向公眾開放。


查看完整回答
反對 回復 2023-07-07
  • 1 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號