如果我有PHP脚本,我如何从该脚本中获取文件名?
另外,给定表单脚本的名称jquery.js.php
,如何只提取"jquery.js"部分?
只需使用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, '.')); }
如果希望include知道它所在的文件(即实际请求的脚本名称),请使用:
basename($_SERVER["SCRIPT_FILENAME"], '.php')
因为当你写一个文件时,你通常知道它的名字.
编辑:如Alec Teal所述,如果您使用符号链接,它将显示符号链接名称.
请参见http://php.net/manual/en/function.pathinfo.php
pathinfo(__FILE__, PATHINFO_FILENAME);
这里的区别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,它将返回索引而不是header.
这可能有所帮助:
basename($_SERVER['PHP_SELF'])
即使您使用包含它也会有效.
亚历克斯的答案是正确的,但你也可以这样做,没有像这样的正则表达式:
str_replace(".php", "", basename($_SERVER["SCRIPT_NAME"]));
这是我最近在寻找答案时发现的列表:
//self name with file extension echo basename(__FILE__) . '
'; //self name without file extension echo basename(__FILE__, '.php') . '
'; //self full url with file extension echo __FILE__ . '
'; //parent file parent folder name echo basename($_SERVER["REQUEST_URI"]) . '
'; //parent file parent folder name with //s echo $_SERVER["REQUEST_URI"] . '
'; // parent file name without file extension echo basename($_SERVER['PHP_SELF'], ".php") . '
'; // parent file name with file extension echo basename($_SERVER['PHP_SELF']) . '
'; // parent file relative url with file etension echo $_SERVER['PHP_SELF'] . '
'; // parent file name without file extension echo basename($_SERVER["SCRIPT_FILENAME"], '.php') . '
'; // parent file name with file extension echo basename($_SERVER["SCRIPT_FILENAME"]) . '
'; // parent file full url with file extension echo $_SERVER["SCRIPT_FILENAME"] . '
'; //self name without file extension echo pathinfo(__FILE__, PATHINFO_FILENAME) . '
'; //self file extension echo pathinfo(__FILE__, PATHINFO_EXTENSION) . '
'; // parent file name with file extension echo basename($_SERVER['SCRIPT_NAME']);
别忘了删除:)
你也可以用这个:
echo $pageName = basename($_SERVER['SCRIPT_NAME']);