如果我有PHP脚本,我怎么能得到当前执行的文件没有其扩展名的文件名?
给定一个“jquery.js.php”形式的脚本的名称,我如何提取只是“jquery.js”部分?
如果我有PHP脚本,我怎么能得到当前执行的文件没有其扩展名的文件名?
给定一个“jquery.js.php”形式的脚本的名称,我如何提取只是“jquery.js”部分?
当前回答
__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
其他回答
更通用的方法是使用pathinfo()。从5.2版本开始,它支持PATHINFO_FILENAME。
So
pathinfo(__FILE__,PATHINFO_FILENAME)
也会做你需要的事。
虽然__FILE__和$_SERVER是最好的方法,但在某些情况下,这也是一种替代方法:
get_included_files();
它包含调用它的文件路径和所有其他包含。
$filename = "jquery.js.php";
$ext = pathinfo($filename, PATHINFO_EXTENSION);//will output: php
$file_basename = pathinfo($filename, PATHINFO_FILENAME);//will output: jquery.js
这可能会有帮助:
basename($_SERVER['PHP_SELF'])
即使使用include,它也能工作。
你也可以用这个:
echo $pageName = basename($_SERVER['SCRIPT_NAME']);