当前位置:  开发笔记 > 编程语言 > 正文

获取当前脚本文件名

如何解决《获取当前脚本文件名》经验,为你挑选了8个好方法。

如果我有PHP脚本,我如何从该脚本中获取文件名?

另外,给定表单脚本的名称jquery.js.php,如何只提取"jquery.js"部分?



1> alex..:

只需使用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, '.'));
}


虽然`__FILE__`为你提供了行所在的`.php`文件,你实际上想要`$ _SERVER ['SCRIPT_NAME']`用于当前运行的顶级脚本(由Web服务器调用或直接在命令行)
@ThiefMaster因为PHP内置了一些东西来处理文件扩展名.车轮存在,滚动良好.
但正则表达式可能更贵!

2> SparK..:

如果希望include知道它所在的文件(即实际请求的脚本名称),请使用:

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

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

编辑:如Alec Teal所述,如果您使用符号链接,它将显示符号链接名称.


这对我有帮助))需要获取脚本文件名,在**必填文件中**)
这是错误的,它不会获得实际的PHP文件,而是Web服务器解析为请求的文件.如果您使用simlinks则不同.

3> max4ever..:

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

pathinfo(__FILE__, PATHINFO_FILENAME);



4> Khandad Niaz..:

这里的区别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.


@KhandadNiazi`basename($ _ SERVER ["REQUEST_URI"],".php");`如果链接的格式为`http:// example.com/somefolder`,`将返回文件夹的名称.而`basename($ _ SERVER ['PHP_SELF'],".php");`将始终返回脚本的名称,在本例中为`index`.

5> 小智..:

这可能有所帮助:

basename($_SERVER['PHP_SELF'])

即使您使用包含它也会有效.


@stumpx然后你可以做`basename($ _ SERVER ['PHP_SELF'],".php");`

6> user..:

亚历克斯的答案是正确的,但你也可以这样做,没有像这样的正则表达式:

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


这样可能会损坏像`hey.php-i-am-a-weird-filename.php`这样的文件名.
@user你知道basename有一个"sulfix"参数,对吗?

7> begoyan..:

这是我最近在寻找答案时发现的列表:

//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']);

别忘了删除:)




8> Shah Alom..:

你也可以用这个:

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

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有