PHP在URL重写后获取当前文件名


PHP Get Current Filename After URL Rewrite

我知道$_SERVER["REQUEST_URI"];可以用来获取当前页面的url,但如果url是htaccess url重写,这就不起作用。

如何获得当前php文件的真实(未重写)文件名?

例如,我去http://site.com/page/它重写并显示http://site.com/page.php

$_SERVER["REQUEST_URI"];只会给我重写,我想要原件。

您可以使用php常量__FILE__,如下所示:

 echo __FILE__;

您可以使用$_SERVER['SCRIPT_NAME']

您可以使用$_SERVER['PHP_SELF']获取当前脚本,也可以使用__FILE__获取当前文件。不同之处在于包含的文件。如果文件A.php包括文件B.php,则在文件B.php中,$_SERVER['PHP_SELF']将具有A.php,因为这是调用脚本,而__FILE__具有调用该行的确切文件,即B.php.ex:

A.php:

<?php
include("B.php");

B.php:

<?php
echo '__FILE__ has: '.__FILE__.'<br />'; //shows B.php
echo '$_SERVER["PHP_SELF"] has: '.$_SERVER['PHP_SELF'].'<br />'; //shows A.php