[英]PHP include() with GET attributes (include file.php?q=1)
我想在我的服務器上include()
一個php文件,帶有額外的GET屬性。 但它不會起作用:
include('search.php?q=1');
它給出的錯誤:
PHP Warning: include(): Failed opening './search.php?q=1' for inclusion
似乎它試圖打開一個名為'search.php?q = 1'的文件而不是打開'search.php'文件並向其發送GET屬性。
*請注意,如果我不添加任何GET屬性,它確實有效:
include('search.php');
您不希望這樣做:您必須執行http請求才能傳遞GET參數。 以這種方式調用的PHP腳本將在單獨的PHP進程中運行。
最佳方式是在本地包含文件:
include('search.php');
並手動傳遞任何參數,例如
$q = "1";
include('search.php'); // expects `$q` parameter
或者,更清楚地說,將search.php
任何search.php
放入可以使用參數調用的函數或類中:
include('search.php'); // defines function my_search($q)
my_search(1);
簡單的解決方案是在包含文件之前設置GET值。
$_GET['q'] = 1;
include('search.php);
嘗試重寫$ _GET變量。
$oldget=$_GET;
$_GET=array('q'=>'1');
include('search.php');
$_GET=$oldget;
它工作正常!! 謝謝
在“include”語句之前設置var
$q=1;
include("search.php");
實際上,寫入$_GET
數組有點臟,沒有必要。 您只需在include
語句之前在頁面中設置一個變量:
$q=1;
include("search.php");
這樣, $q
變量將在您包含的頁面中可見,並且(顯然)可以在任何包含頁面中以不同方式設置。
如果像我一樣,你需要將它永久地放在'include'鏈接中,它可以用jQuery完成。
我最近使用的解決方案如下:
首先,聲明要包含的文件填充div的位置:
<div id="imgdiv"> </div>
然后添加一個jQuery調用來填充它,但是用PHP插入你的GET變量:
<script>
window.onload = function(){
$("#imgdiv").load('php/show-img.php?id=<?php echo $i; ?>&name=<?php echo $name; ?>');
}
</script>
希望這足以讓它工作,假設當然使用支持java的瀏覽器。
也許是另一種選擇,雖然它有自己的局限性,使用AJAX注入div。最簡單的方法是使用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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.