将html和PHP代码执行到变量中

时间:2015-07-21 19:33:23

标签: php view controller

我试图弄清楚如何从类类型控制器执行HTML和PHP代码,并将结果存储到变量中以模拟某些面向MVC的框架的行为,例如:

我有一个名为 $ mystic_var 的变量,我希望将这个var用于一个奇怪的函数(我不知道哪个函数是)来读取.php文件,执行它将结果存储到我的$ mystic_var

假设try.php具有以下内容:

<html>
<head></head>
<body><?php echo "Hello world"; ?></body>
</html>

然后我执行$ mystic_var = mystic_function(&#39; try.php&#39;);如果我检查我的$ mystic_var,它会有这样的东西:

<html>
<head></head>
<body>Hello World</body>
</html>

3 个答案:

答案 0 :(得分:0)

您可以使用输出缓冲区

<?php ob_start(); ?>
<html>
<head></head>
<body><?php echo "Hello world"; ?></body>
</html>
<?php $output = ob_get_clean(); ?>

答案 1 :(得分:-1)

如果您使用file_get_contents,您将获得该文件中的所有文本,但其中的任何PHP代码都不会被执行。如果您include该文件,将执行PHP,但包含该文件的结果将最终显示在您的屏幕上。您可以使用output buffering来保存所包含文件的内容,而不是立即显示它。

function mystic_function($php_file) {
    ob_start();
    include $php_file;
    return ob_get_flush();
}

$mystic_var = mystic_function('try.php');

echo $mystic_var;
// or if you want to see the html
// echo htmlspecialchars($mystic_var);

答案 2 :(得分:-1)

例如,你有一个带有你的功能的php类

php file ..

$more = $response['additional_data']['pagination']['more_items_in_collection'];
$nextStart = $response['additional_data']['pagination']['next_start'];

你的班级

<html>
<head></head>
<body>@$hello_word@</body> //you should wrap strings you want to play with later into something you parse later
</html>

...浏览

class myclass{

   // and you have your php function that returns the file contents..

    public function readfile($a){  //$a will store file path & name

        $contents = file_get_contents ($a);
        return $contents;

   }

}

注意:

PHP函数读取file = file_get_contents();

声明class =&gt; $ myclass = new myclass();

class =&gt;内的访问功能$ myclass-&GT; ReadFile的( “file.html”);

使用str_replace或其他方法解析变量