PHP 中的 $_SERVE['PHP_SELF'] 的一个注意点

PHP 中的 $_SERVE['PHP_SELF'] 的一个注意点

使用的是 Apache 搭配 PHP 7

手册:

当前执行脚本的文件名,与 document root 有关。例如,在地址为 
http://example.com/foo/bar.php 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 
/foo/bar.php。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。  从 PHP 4.3.0 
版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可
用。 

$_SERVE[‘PHP_SELF’] 读取的是当前执行脚本的文件名
不是简单的理解成 url 中的文件名
因为 url 中的文件名可能不存在

注意下面这种情况:
在 Apache 的配置文件中,有设置文件夹的默认打开文件


    DirectoryIndex index.html index.php

比如我这里设置的是 index.html 和 index.php 两个文件
那么在访问文件夹而没有指定访问文件的时候
会自动访问文件夹下的 index.html
没有 index.html , 就访问 index.php
都没有,就不访问任何文件

比如现在的 url 是
http://localhost/
那么此时,url 中并没有体现出是访问哪一个文件
但是假如在根目录下有 index.php
这个时候就自动访问 index.php
而此时通过 $_SERVER[‘PHP_SELF’] 是可以获取到当前文件名的
即使这个文件名并没有在 url 上显示出来
在这里插入图片描述

你可能感兴趣的:(PHP)