在PHP $ _SERVER变量中,四个变量引用了请求的文件。
["SCRIPT_FILENAME"]=> string(21) "/webroot/file.php"
["REQUEST_URI"]=> string(9) "/file.php?param=valyou"
["SCRIPT_NAME"]=> string(9) "/file.php"
["PHP_SELF"]=> string(9) "/file.php"
/这些数组成员中的任何一个都不能引用通过URL请求的实际文件吗?例如,URL重写,我对此项目没有经验或计划使用。
我注意到“ REQUEST_URI”还包括我不需要的GET变量。
答案 0 :(得分:1)
如果您需要实际请求的文件,则应使用SCRIPT_FILENAME
(绝对文件系统路径)或SCRIPT_NAME
(相对于根文件系统的路径)或...魔术常数__FILE__
用于当前正在执行的脚本(但这不一定是用户正在请求的文件)。
/这些数组成员中的任何一个都不能引用通过URL请求的实际文件吗?
是的
尽管PHP_SELF
引用了请求的文件,但它也可以包含URL中的附加路径名信息(PATH_INFO
)。例如。 /file.php/foo/bar
。
REQUEST_URI
是所请求的URL,因此可以完全不同。仅当所请求的URL直接映射到文件系统路径时,它们看起来才相似。例如,如果URL /foo
内部重写到/file.php
,则REQUEST_URI
持有/foo
,而不是/file.php
。