$_SERVER['PHP_SELF'] 和 $_SERVER['SCRIPT_NAME'] 有什么区别

php

1个回答

写回答

huxuhang

2025-06-29 04:20

+ 关注

php
php

$_SERVER['php_SELF'] 和 $_SERVER['SCRIPT_NAME'] 是 php 中的两个全局变量,用于获取当前脚本的文件路径。

$_SERVER['php_SELF'] 返回的是当前正在执行的脚本的文件名,包括其相对路径。这个变量是通过服务器提供的环境变量来获取的。

$_SERVER['SCRIPT_NAME'] 返回的是当前脚本的路径,不包括文件名。这个变量也是通过服务器提供的环境变量来获取的。

下面来详细解释一下这两个变量的区别。

$_SERVER['php_SELF']:

$_SERVER['php_SELF'] 返回的是当前正在执行的脚本的文件名,包括其相对路径。这个变量可以用于获取当前脚本的路径,并且可以在表单的 action 属性中使用,将表单数据提交给当前脚本进行处理。

$_SERVER['SCRIPT_NAME']:

$_SERVER['SCRIPT_NAME'] 返回的是当前脚本的路径,不包括文件名。这个变量可以用于获取当前脚本的路径,并且可以在引入外部文件时使用,指定文件的路径。

下面是一个示例代码,演示了如何使用 $_SERVER['php_SELF'] 和 $_SERVER['SCRIPT_NAME']:

php

<!DOCTYPE html>

<html>

<head>

<title>php_SELF vs SCRIPT_NAME</title>

</head>

<body>

<form method="post" action="<?php echo $_SERVER['php_SELF']; ?>">

<label for="name">Name:</label>

<input type="text" name="name" id="name">

<input type="submit" value="Submit">

</form>

<?php</p>if ($_SERVER["REQUEST_METHOD"] == "POST") {

$name = $_POST['name'];

echo "Hello, " . $name . "!";

}

?>

</body>

</html>

在上面的代码中,我们使用了 $_SERVER['php_SELF'] 将表单的 action 属性设置为当前脚本的文件名,这样表单数据将提交给当前脚本进行处理。然后,我们在 php 代码中通过 $_POST['name'] 获取到用户输入的姓名,并进行输出。

:

$_SERVER['php_SELF'] 和 $_SERVER['SCRIPT_NAME'] 都是用于获取当前脚本的文件路径的 php 全局变量。它们的区别在于,$_SERVER['php_SELF'] 返回的是当前正在执行的脚本的文件名,包括其相对路径,适用于将表单数据提交给当前脚本进行处理;而 $_SERVER['SCRIPT_NAME'] 返回的是当前脚本的路径,不包括文件名,适用于引入外部文件时指定文件的路径。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号