Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用require_中的查询字符串一次_Php_Query String_Require - Fatal编程技术网

在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()被关闭了,我只是没有意识到这一点。非常感谢。