在PHP中使用require_中的查询字符串一次
在我的一个页面上,我有一个在PHP中使用require_中的查询字符串一次,php,query-string,require,Php,Query String,Require,在我的一个页面上,我有一个require_once('../path/to/url/page.php')它可以正常工作。添加查询字符串require_一次('../path/to/url/page.php?var=test')它将不再包含该文件。只是一片空白。有人知道为什么吗?不能在请求中使用查询字符串吗 谢谢, Ryan要求加载要包含的文件(从文件路径)。它不会通过apache(或其他Web服务器)请求该文件,因此不能以这种方式传递查询字符串 如果需要将数据传递到文件中,只需定义一个标准php
require_once('../path/to/url/page.php')代码>它可以正常工作。添加查询字符串require_一次('../path/to/url/page.php?var=test')代码>它将不再包含该文件。只是一片空白。有人知道为什么吗?不能在请求中使用查询字符串吗
谢谢,
Ryan要求加载要包含的文件(从文件路径)。它不会通过apache(或其他Web服务器)请求该文件,因此不能以这种方式传递查询字符串
如果需要将数据传递到文件中,只需定义一个标准php变量即可
范例
<?php $a_variable = "data"; require_once('../path/to/url/page.php'); ?>
注意,必须在调用include/require之前设置该变量,否则它将不可用。require只接受路径。添加任何请求都是没有意义的,因为它不会发出任何请求
它使用require_once('../path/to/url/page.php?var=test'),将所需代码简单地包含到当前代码中
,php不会向page.php发出新请求,它实际上会搜索名为page.php?var=test
的文件并将其包含在内,因为在unix中,您可以拥有这样的文件名。如果要将变量传递给该脚本,只需定义它:$var=“test”
,它就可以在该脚本中使用。All answes为true。但最重要的是:因为$\u GET
是一个全局变量,它也存在于所有包含的文件中,所以用include传递这些参数绝对没有用。或者定义$\u GET['var']='test'
这没有必要,实际上这会带来麻烦。@Rudie:我支持s3v3n,绝对不会这样做。“php不会向page.php发出新请求,它实际上会搜索名为page.php?var=test的文件”——这很有意义,并解释了include失败的事实。谢谢你能解释一下为什么$\u GET['var']='test'代码>会带来麻烦吗?我的问题是,$\u GET…
有效,但$var=“test”
无效。你在说什么?他根本没有使用$_-GET。我假设他在page.php代码中,如果我在页面中需要将代码放在url var=somethingelse的末尾,它会改变页面的行为。php-pagerequire不会发出新的请求,因此它不会触及任何$_-GET。它只包含该代码,就像一个本地fopen()。没有请求,没有获取,没有发布。这就是我要说的,它只包括代码,如果设置任何获取变量都是毫无意义的,即使有可能,它也会被用户覆盖,由于将代码包含在当前代码中很简单,如果我在描述我的意思时含糊不清,那么我的道歉也没有必要将该变量推入$\u GET。你可以简单地定义它。我可以回答“它只是空白”的问题。通常,require()
会为不存在的文件触发错误(因为该参数不被视为“URL”,而是被视为原始文件名)。您的错误报告()似乎已完全禁用。如果你精通的话,关闭通知是可以的,但是你绝对应该让E_ERRORs处于打开状态(开发环境)。@mario你是对的,error_reporting()被关闭了,我只是没有意识到这一点。非常感谢。