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

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


当前回答

更通用的方法是使用pathinfo()。从5.2版本开始,它支持PATHINFO_FILENAME。

So

pathinfo(__FILE__,PATHINFO_FILENAME)

也会做你需要的事。

其他回答

参见http://php.net/manual/en/function.pathinfo.php

pathinfo(__FILE__, PATHINFO_FILENAME);

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

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

结果:

index . php

$filename = "jquery.js.php";
$ext = pathinfo($filename, PATHINFO_EXTENSION);//will output: php
$file_basename = pathinfo($filename, PATHINFO_FILENAME);//will output: jquery.js

当你想让你的包含知道它在什么文件(即。实际请求的脚本名称),使用:

basename($_SERVER["SCRIPT_FILENAME"], '.php')

因为当你写入一个文件时,你通常知道它的名字。

编辑:正如Alec Teal所指出的,如果你使用符号链接,它将显示符号链接的名称。

Alex的答案是正确的,但你也可以不使用正则表达式这样做:

str_replace(".php", "", basename($_SERVER["SCRIPT_NAME"]));