如果我有PHP脚本,我怎么能得到当前执行的文件没有其扩展名的文件名?
给定一个“jquery.js.php”形式的脚本的名称,我如何提取只是“jquery.js”部分?
如果我有PHP脚本,我怎么能得到当前执行的文件没有其扩展名的文件名?
给定一个“jquery.js.php”形式的脚本的名称,我如何提取只是“jquery.js”部分?
当前回答
这适用于我,即使在包含的PHP文件中运行,并且您希望当前PHP文件的文件名正在运行:
$currentPage= $_SERVER["SCRIPT_NAME"];
$currentPage = substr($currentPage, 1);
echo $currentPage;
结果:
index . php
其他回答
Alex的答案是正确的,但你也可以不使用正则表达式这样做:
str_replace(".php", "", basename($_SERVER["SCRIPT_NAME"]));
只需使用PHP神奇常数__FILE__来获取当前文件名。
但你似乎想要没有。php的部分。所以…
basename(__FILE__, '.php');
一个更通用的文件扩展名删除程序应该是这样的…
function chopExtension($filename) {
return pathinfo($filename, PATHINFO_FILENAME);
}
var_dump(chopExtension('bob.php')); // string(3) "bob"
var_dump(chopExtension('bob.i.have.dots.zip')); // string(15) "bob.i.have.dots"
如您所料,使用标准字符串库函数要快得多。
function chopExtension($filename) {
return substr($filename, 0, strrpos($filename, '.'));
}
这可能会有帮助:
basename($_SERVER['PHP_SELF'])
即使使用include,它也能工作。
__FILE__使用基于localhost服务器结果的示例:
echo __FILE__;
// C:\LocalServer\www\templates\page.php
echo strrchr( __FILE__ , '\\' );
// \page.php
echo substr( strrchr( __FILE__ , '\\' ), 1);
// page.php
echo basename(__FILE__, '.php');
// page
试试这个
$current_file_name = $_SERVER['PHP_SELF'];
echo $current_file_name;