如果我有PHP脚本,我怎么能得到当前执行的文件没有其扩展名的文件名?

给定一个“jquery.js.php”形式的脚本的名称,我如何提取只是“jquery.js”部分?


当前回答

这适用于我,即使在包含的PHP文件中运行,并且您希望当前PHP文件的文件名正在运行:

$currentPage= $_SERVER["SCRIPT_NAME"];
$currentPage = substr($currentPage, 1);
echo $currentPage;

结果:

index . php

其他回答

你也可以用这个:

echo $pageName = basename($_SERVER['SCRIPT_NAME']);

下面是basename(__FILE__, ".php")和basename($_SERVER['REQUEST_URI'], ".php")之间的区别。

basename(__FILE__, ".php")显示了包含此代码的文件名称-这意味着如果您在header.php中包含此代码并且当前页面是index.php,它将返回头文件而不是索引。

basename($_SERVER["REQUEST_URI"], ".php") -如果你在header.php中使用include这段代码,而当前页面是index.php,它将返回索引而不是头。

以下是我最近在寻找答案时发现的一个列表:

//self name with file extension
echo basename(__FILE__) . '<br>';
//self name without file extension
echo basename(__FILE__, '.php') . '<br>';
//self full url with file extension
echo __FILE__ . '<br>';

//parent file parent folder name
echo basename($_SERVER["REQUEST_URI"]) . '<br>';
//parent file parent folder name with //s
echo $_SERVER["REQUEST_URI"] . '<br>';

// parent file name without file extension
echo basename($_SERVER['PHP_SELF'], ".php") . '<br>';
// parent file name with file extension
echo basename($_SERVER['PHP_SELF']) . '<br>';
// parent file relative url with file etension
echo $_SERVER['PHP_SELF'] . '<br>';

// parent file name without file extension
echo basename($_SERVER["SCRIPT_FILENAME"], '.php') . '<br>';
// parent file name with file extension
echo basename($_SERVER["SCRIPT_FILENAME"]) . '<br>';
// parent file full url with file extension
echo $_SERVER["SCRIPT_FILENAME"] . '<br>';

//self name without file extension
echo pathinfo(__FILE__, PATHINFO_FILENAME) . '<br>';
//self file extension
echo pathinfo(__FILE__, PATHINFO_EXTENSION) . '<br>';

// parent file name with file extension
echo basename($_SERVER['SCRIPT_NAME']);

别忘了删除:)

< br >

这适用于我,即使在包含的PHP文件中运行,并且您希望当前PHP文件的文件名正在运行:

$currentPage= $_SERVER["SCRIPT_NAME"];
$currentPage = substr($currentPage, 1);
echo $currentPage;

结果:

index . php

这可能会有帮助:

basename($_SERVER['PHP_SELF'])

即使使用include,它也能工作。