在 PHP 中获取当前脚本文件名
你的脚本可能需要当前文件名及其当前正在执行的目录名。在本教程文章中,我们将讨论如何获取项目中当前脚本的文件名。
PHP 提供了多种方式来查找当前文件名。首先,我们将简要了解所有参数和方法,然后将它们组合起来得到结果。
-
__FILE__:PHP 提供了 9 个神奇的常量,根据它们的用途来使用。这些常量是由各种扩展创建的。所有这些常量都在编译时解析。
__FILE__是这样一个神奇的常量之一,它为你提供当前 .php 文件的文件系统路径。 -
$_SERVER:$_SERVER是一个包含有关标题、路径和脚本位置信息的数组。网络服务器创建所有这些信息。 -
PHP_SELF:PHP_SELF是一个变量,用于获取当前正在执行的脚本的文件名。它是相对于文档根的。当用户在命令行中运行此命令时,它会打印有关脚本名称的信息。 -
SCRIPT_FILENAME:这是一个变量,用于获取当前正在执行的脚本的文件名,唯一的区别是它的路径是绝对的。
-
SCRIPT_NAME:它包含当前脚本的路径。这对于需要指向自身的页面很有用。
-
REQUEST_URI:URI 用于访问页面的位置,例如,
/index.html。
现在让我们一起使用上述所有命令来获取文件名。
-
$_SERVER['SCRIPT_NAME']:带有文件扩展名的父文件名
-
$_SERVER['PHP_SELF']:
<!--adsense-->
带有文件扩展名的父文件相对 URL。例如,`http://example.com/parentFolder/child.php` 将是 `/parentFolder/child.php`。
-
$_SERVER['SCRIPT_FILENAME']:带有文件扩展名的父文件完整 URL
-
$_SERVER['REQUEST_URI']:父文件父文件夹名称与
如果文件的路径作为参数提供给 basename() 函数,则内置的 PHP 函数 basename() 将返回文件的基本名称。
-
basename(__FILE__):带有 PHP 文件扩展名的当前文件名。
-
basename(__FILE__, '.php'):没有 PHP 文件扩展名的当前文件名。
-
basename($_SERVER['PHP_SELF'], ".php"):没有 PHP 文件扩展名的当前文件名。
-
basename($_SERVER['PHP_SELF']):带有 PHP 文件扩展名的当前文件名。
-
pathinfo(__FILE__, PATHINFO_FILENAME):没有 PHP 文件扩展名的当前文件名。
PHP 中获取当前脚本文件名的示例代码
<?php
echo "\$_SERVER['SCRIPT_NAME']: ";
echo $_SERVER['SCRIPT_NAME'];
echo "\n";
echo "\$_SERVER['PHP_SELF']: ";
echo $_SERVER['PHP_SELF'];
echo "\n";
echo "\$_SERVER['SCRIPT_FILENAME']: ";
echo $_SERVER['SCRIPT_FILENAME'];
echo "\n";
echo "basename(__FILE__): ";
echo basename(__FILE__);
echo "\n";
echo "basename(__FILE__, '.php'): ";
echo basename(__FILE__, '.php');
echo "\n";
echo "basename(\$_SERVER['PHP_SELF'], '.php'): ";
echo basename($_SERVER['PHP_SELF'], '.php');
echo "\n";
echo "basename(\$_SERVER['PHP_SELF']): ";
echo basename($_SERVER['PHP_SELF']);
echo "\n";
echo "pathinfo(__FILE__, PATHINFO_FILENAME): ";
echo pathinfo(__FILE__, PATHINFO_FILENAME);
echo "\n";
?>
输出:

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn