当前位置: 首页 > 面试题库 >

PHP_SELF,PATH_INFO,SCRIPT_NAME,REQUEST_URI

傅翰池
2023-03-14
问题内容

我正在CodeIgniter中构建一个PHP应用程序。CodeIgniter将所有请求发送到主控制器:index.php。但是,我不喜欢index.php在URI中看到。例如,http://www.example.com/faq/whatever路由http://www.example.com/index.php/faq/whatever。我需要一种可靠的方法来让脚本知道其地址,因此它将知道如何处理导航。mod_rewrite根据CodeIgniter文档,我已经使用过。

规则如下:

RewriteEngine on
RewriteCond $1 !^(images|inc|favicon\.ico|index\.php|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

通常,我只是检查一下php_self,但在这种情况下,它始终为index.php。我可以从REQUEST_URIPATH_INFO等获得它,但是我正在尝试确定哪一个最可靠。没有人知道(或不知道在哪里可以找到)之间的真正区别PHP_SELFPATH_INFOSCRIPT_NAME,和REQUEST_URI?谢谢你的帮助!

注意 :我不得不添加空格,因为SO看到了下划线,并且由于某种原因使其变为斜体。

更新 :修复了空格。


问题答案:

该PHP文件可以告诉你的区别:

‘PHP_SELF’

当前正在执行的脚本的文件名,相对于文档根目录。例如,位于地址
http://example.com/test.php/foo.bar
的脚本中的 $ _SERVER [‘PHP_SELF’]/test.php/foo.bar
。该FILE常量包含当前的完整路径和文件名(例如包含文件)。如果PHP作为命令行处理器运行,则此变量包含自PHP
4.3.0起的脚本名称。以前不可用。
__

“ SCRIPT_NAME”

包含当前脚本的路径。这对于需要指向自己的页面很有用。该FILE常量包含当前的完整路径和文件名(例如包含文件)。

“ REQUEST_URI”

为了访问该页面而给出的URI;例如 ‘/index.html’

似乎没有记录PATH_INFO …



 类似资料:
  • 本文向大家介绍PHP_SELF,SCRIPT_NAME,REQUEST_URI区别,包括了PHP_SELF,SCRIPT_NAME,REQUEST_URI区别的使用技巧和注意事项,需要的朋友参考一下 $_SERVER[PHP_SELF], $_SERVER[SCRIPT_NAME], $_SERVER['REQUEST_URI'] 在用法上是非常相似的,他们返回的都是与当前正在使用的页面地址有关的

  • 问题内容: 我发现有一篇文章声称容易受到XSS攻击。 我不确定我是否理解正确,但是几乎可以肯定这是错误的。 这怎么容易受到XSS攻击! 问题答案: 为了使其安全使用,您需要使用。

  • 我的nginx和php配置有问题。由于某些原因,为空。 我正在跑步: Ubuntu 18.04 nginx(nginx版本:nginx/1.14.0(Ubuntu)) php(PHP7.2.10-0ubuntu0.18.04.1) 我不知道是什么导致了这个问题。我在网上读了很多书,但找不到任何解决办法。 只是为了看看是否有更多的信息丢失,我检查了我从,这是我得到的(审查过的私人信息...): 数组

  • 如果我就要匹配这种格式的字符串,如何修改正则呢?才能拿到/abc/123

  • 问题内容: 所有外部URL都类似于“模块/操作?key1 = param1”。无法进行自定义- 但速度很快。区别在于,第一个使用PHP的GET,第二个使用PATH_INFO。 我已经看过好几次了,但仍然不知道它到底是什么。它有什么作用? 问题答案: 实际上,它与服务PHP页面的Apache Web服务器有关,而与PHP本身无关。 是在启用指令后由Apache设置的环境变量。它将包含尾随路径名信息,

  • 问题内容: 在PHP页面上的表单中,可以使用: 要么 要么 在表单的动作属性中。由于echo 不会传递要使用的变量,而您必须使用,为什么还要使用它呢? 我问是因为我花了一些时间才弄清楚这些变量没有随传递。谢谢。 问题答案: 该属性将默认为当前URL。这是“将表格提交到它来自的地方的最可靠,最简单的方法”。 没有理由使用,并且根本不提交表单(除非附加了事件处理程序来处理提交)。