我有一个包含大量动态内容的网站。我有一个主模板页面,然后将内容加载到其中。我有SSI运行良好(包括到PHP文件)但我无法获取PHP文件从html页面看到url参数。如果我能提供帮助,我宁愿不将所有的html文件转换为php文件。
以下代码获取到php文件ok(即显示hello world。)但是我要为????将主题从html url传递到包含的php文件?
我尝试过$ _GET,如果我直接调用页面(即在浏览器中放置getDynamicContent.php?topic = X),但是在通过#include调用时没有。
表示网址:mainPage.shtml?topic = X
在mainPage.shtml中
//this includes fine - no problems
<!--#include "commonHeaderStuff.html"-->
//this includes but does not parse variable
<!--#include "getDynamicContent.php"-->
getDynamicContent.php中的
//get topic variable
$topic=????
//return content based on $topic
echo "hello world";
if($topic=="X"){echo "You passes an X"}
else {echo "You passes a Y";}
答案 0 :(得分:1)
您需要使用$_GET
if(isset($_GET['topic'])){
$topic = $_GET['topic'];
echo "hello world";
if($topic == "X"){
echo "You passes an X";
}else{
echo "You passes a Y";
}
}else{
#no topic
}
通过搜索将变量传递给Get url and parameters with SSI
中包含的变量的方法来尝试我的尝试<!-- set default value for SSI variable "topic" -->
<!--#set var="topic" value="" -->
<!-- get "topic" value from URL -->
<!--#if expr="$QUERY_STRING = /topic=([a-zA-Z0-9]+)/" -->
<!--#set var="topic" value="?topic=$1" -->
<!--#endif -->
<!--#include virtual="getDynamicContent.php${topic}"-->
我刚刚对此进行了测试,但我也必须添加virtual=
才能使其正常工作,但您可能需要将其更改为file=
。您可以将<!--#set var="topic" value="" -->
更改为您想要的任何默认值,例如:value="?topic=X"