PHP包含变量内部

时间:2010-12-09 23:45:46

标签: php function variables include

我有一个控制页面输出的功能:

$page = "<div class='media-title'><h2>{$title}</h2></div><div class='media-image'>{$image}</div><div class='media-desc'>{$desc}</div>";

我想在$page变量中定义的html中包含一个文件“box.php”。我试过这个:

$page = "<div class='media-title'><h2>{$title}</h2></div><div class='media-image'>{$image}</div><div class="inlinebox">" . include("box.php"); . "</div><div class='media-desc'>{$desc}</div>";

......但它不起作用。如何在变量中加入php include?

4 个答案:

答案 0 :(得分:13)

来自php.net

// put this somewhere in your main file, outside the
// current function that contains $page
function get_include_contents($filename) {
    if (is_file($filename)) {
        ob_start();
        include $filename;
        $contents = ob_get_contents();
        ob_end_clean();
        return $contents;
    }
    return false;
}

// put this inside your current function
$string = get_include_contents('box.php');
$page  = '<div class="media-title"><h2>{$title}</h2></div>';
$page .= '<div class="media-image">{$image}</div>';
$page .= '<div class="inlinebox">' . $string . '</div>';
$page .= '<div class="media-desc">{$desc}</div>';

答案 1 :(得分:9)

  

如何在变量中加入php include?

# hello.php
<?php
  return "Hello, World!";
?>

# file.php
$var = include('hello.php');
echo $var;

我通常会避免这样的事情。

答案 2 :(得分:3)

首先,不要在声明中使用分号 其次,将include语句包装在括号中。

$page = "<div class='media-title'><h2>{$title}</h2></div>
<div class='media-image'>{$image}</div><div class="inlinebox">" . 
(include "box.php") . "</div><div class='media-desc'>{$desc}</div>";

最后:在“box.php”文件中,您需要执行以下操作:

<?php
ob_start();

// your code goes here

return ob_get_clean();

编辑:有关在职能竞赛之外召集回复的一些信息:PHP Manual - Return

答案 3 :(得分:2)

编辑:

不知道这是否有用,但我认为包含一个文件来获取一段HTML,不是一个好的选择。它不可扩展。你可以试试像MVC这样的东西。您可以要求您的控制器重新定义您想要的内容。

$view = $controler->getElement('box');

$page = "<div class='media-title'><h2>{$title}</h2></div><div class='media-image'>{$image}</div><div class="inlinebox">" . $view . "</div><div class='media-desc'>{$desc}</div>";

尝试解耦代码。

我建议你看看一些MVC框架,在我看来,最好的是CakePHP。