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

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


当前回答

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

pathinfo(__FILE__, PATHINFO_FILENAME);

其他回答

__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

虽然__FILE__和$_SERVER是最好的方法,但在某些情况下,这也是一种替代方法:

get_included_files();

它包含调用它的文件路径和所有其他包含。

下面是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,它将返回索引而不是头。

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

你也可以用这个:

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