可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I want to include()
a php file located on my server, with additional GET attributes.
But it won't work:
include('search.php?q=1');
The error it gives:
PHP Warning: include(): Failed opening './search.php?q=1' for inclusion
Seems like it tries to open a file literally named 'search.php?q=1' instead of opening the 'search.php' file and sending it the GET attributes.
*Note that it does work if I don't put any GET attributes:
include('search.php');
回答1:
You don't want to do this: You'd have to do a http request to be able to pass GET parameters. A PHP script you call in this way will run in a separate PHP process.
The optimal way is to include the file locally:
include('search.php');
and to pass any parameters to it manually, like e.g.
$q = "1";
include('search.php'); // expects `$q` parameter
or, more cleanly, putting whatever you have in search.php
into a function or class that you can call with a parameter:
include('search.php'); // defines function my_search($q)
my_search(1);
回答2:
The easy solution is to set your GET value before you include the file.
$_GET['q'] = 1;
include('search.php);
回答3:
In effect, writing into the $_GET
array is a bit dirty and not necessary.
You could simply set a variable in your page before the include
statement:
$q=1;
include("search.php");
this way, the $q
variable will be visible in your included page and can (obviously) be set differently in any including page.
回答4:
Try rewrite $_GET variable.
$oldget=$_GET;
$_GET=array('q'=>'1');
include('search.php');
$_GET=$oldget;
回答5:
It works fine!! Thank you
Set the var before the "include" statement
$q=1;
include("search.php");
回答6:
maybe an other option, although it comes with its own limitations, using AJAX-injection into a div.. most simple way to to this is with jQuery:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script>$('#box').load('search.php?q=1');</script>
<div ID="box"></div>
回答7:
If like me you needed this to be permanently in the 'include' link it can be done with jQuery.
The solution I used recently was as follows:
First, declare the location of the div to be populated by the included file:
<div id="imgdiv"> </div>
Then add a jQuery call to populate it, but insert your GET variables with PHP:
<script>
window.onload = function(){
$("#imgdiv").load('php/show-img.php?id=<?php echo $i; ?>&name=<?php echo $name; ?>');
}
</script>
Hopefully that will be sufficient to get it working, assuming a java enabled browser is used of course.