使用PHP替换基于URL参数的页面上的内容

时间:2018-11-17 05:21:57

标签: php html

我想根据URL参数替换页面中的内容。 理想情况下,我想使用PHP来获取:

if {{parameter is X}} display {{content X}}

if {{parameter is Y}} display {{content Y}}

..持续几页。

当前设置:

<?php if ($CURRENT_PAGE == "Index") { ?>
<div id="firstDiv">this is the standard page</div>
<?php } ?>

<?php if ($CURRENT_PAGE == "p1") { ?>
<div id-"secondDiv">this is a variation of the page</div>
<?php } ?>

然后使用

include("includes/content.php");
将html块调用到页面

firstDiv按预期显示在index.php中,但是添加URL参数不会改变-仍然显示相同的div(我希望将它替换为secondDiv)

$ CURRENT_PAGE似乎不喜欢URL参数-替代方法是什么?

希望这是有道理的,我是PHP的新手。如果需要,很高兴提供更多详细信息。

在此先感谢您的帮助。

-更新-

谢谢您到目前为止的回答!

似乎我错过了自己的代码的一部分(感谢vivek_23使我意识到了这一点-我正在使用模板,对不起!)

我有一个配置文件,该文件定义了哪个页面,就像这样:

<?php
  switch ($_SERVER["SCRIPT_NAME"]) {
    case "index.php/?p=1":
      $CURRENT_PAGE = "p1"; 
  break;
    default:
      $CURRENT_PAGE = "Index";
  }
?>

在我学习$ _GET之前,有什么方法可以使用当前设置?

再次感谢。

-更新2-

我已改用$ _GET方法,到目前为止,该方法似乎运行良好。我现在的问题是,未设置参数时会出现未定义的错误。我会尽量记住使用此修复程序进行更新。

$p = ($_GET['i']);


if($p == "1"){
    echo '<div id="firstDiv"><p>this is the first div</p></div>';
} 

感谢下面的两个回答者,他们建议使用$ _GET

2 个答案:

答案 0 :(得分:0)

您可以像使用$_GET

if($_GET['p']==1){
 echo '<div id="firstDiv">this is the standard page</div>';
}else if($_GET['p']==2){
 echo '<div id="secondDiv">this is a variation of the page</div>';
}

相反!您可以将basename()$_SERVER['PHP_SELF']

一起使用
//echo basename($_SERVER['PHP_SELF']); first execute this and check the result
if(basename($_SERVER['PHP_SELF']) == 'index'){
    echo '<div id="firstDiv">this is the standard page</div>';
}else{
    echo '<div id="secondDiv">this is a variation of the page</div>';
}

答案 1 :(得分:0)

您需要在URL查询字符串上发送参数,例如:

yourdomain.com?p=1

因此,使用此URL,查询字符串为“?p = 1”,其中有一个名为'p'且值为'1'的GET参数。

在PHP中读取GET参数,您可以使用关联数组$ _GET,如下所示:

$current_page = $_GET['p'];
echo $current_page; // returns '1'

其余的逻辑都可以,您可以根据p参数的值显示一个div或另一个div。 您可以在此处阅读有关如何读取查询字符串参数的更多信息:http://php.net/manual/en/reserved.variables.get.php