PHP - 使用include,我可以在页面中的不同div上执行吗?

时间:2014-01-23 01:48:34

标签: php html

我有一个小问题,我会尝试将其分解为一个小问题,以便我能够正确解释。

我正在开发一个Web应用程序,我有几个div,例如:

<div class="1">
//search bar
</div>

<div class="2">
include_once 'actioncontroller.php';
</div>

<div class="3">

</div>

在actioncontroller.php中我有一个动作控制器,它根据页面上按下的内容决定采取什么动作。我把它放在第二个div中,因为最终我想要打印所有内容。

我的问题是,有没有什么方法可以使用第一个div中的第二个div的代码,而不是在那里打印它?基本上我希望div中的搜索栏可以执行/打印与div 2中的搜索栏相同的内容,但我知道(认为)PHP无法看到include_once之上的代码,如果我包含actioncontroller.php它将在那里打印出来的第一个div,而不是像我想要的那样在第二个中打印它。

希望我足够清楚,这不是编码问题,这只是我如何在第一个div中读取脚本然后在第二个div中运行它的问题......

提前致谢

2 个答案:

答案 0 :(得分:1)

  

我的问题是,有没有什么方法可以使用第一个div中的第二个div的代码,而不是在那里打印它?

是的,但最好的解决方案是更改您已编写的代码。从长远来看,最小化“程序性”PHP代码是至关重要的,这样只要include / require文件就不会发生永远

相信我,它适用于玩具项目,但它最终会导致精神错乱和痛苦。例如,将其放在文件中:

<?php    
echo("Header section");

这很糟糕,因为当打印时,无法选择关于。这是一个进步:

<?php
function WriteHeader(){
    echo("Header section");
}    

更好的方法是使用类自动加载,但这可能比你现在需要听到的更多。使用这种方法,您的主页看起来更像:

<?php
// This next line simply makes the class ActionController *available*, 
// it does NOT cause new things to happen on its own
include_once("actioncontroller.php");

?>
<div class="1">
    <?= ActionController::MakeSomeHTML(); ?>
</div>

<div class="2">
    <?= ActionController::MakeSomeHTML(); ?>
</div>

<div class="3">

</div>

答案 1 :(得分:0)

此代码获取actioncontroller.php的输出并将其保存到变量中,该变量可多次echo'。

<?php
ob_start();
include_once 'actioncontroller.php';
$output = ob_get_contents();
ob_end_clean();
?>

<div class="1">
    <?php echo $output; ?>
</div>

<div class="2">
    <?php echo $output; ?>
</div>