将PHP代码执行到变量中

时间:2012-12-05 10:17:47

标签: php

是否可以将PHP代码执行到变量中?例如,我在同一目录中有index.phppage.php个文件。如果您执行page.php,您将拥有HTML页面的一部分。我想把它作为字符串放入index.php中的变量中。 有什么建议吗?

6 个答案:

答案 0 :(得分:4)

您可以使用输出缓冲区:

<?php
ob_start();
include('page.php');
$page = ob_get_clean();
?>

请注意,page.php仍然在同一个上下文中执行(全局变量,函数等继续存在)

通常做类似的事情听起来像破碎的设计和page.php应该被正确地重写。

答案 1 :(得分:2)

include('page.php');

这将包括从page.phpindex.php

的所有内容

答案 2 :(得分:0)

您可以使用 cURL 来检索脚本的输出并将其保存到变量中。这是你在index.php中要做的事情:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ‘page.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$contents = curl_exec ($ch);

请注意,当您需要的只是响应时,不必将其他脚本(和关联的变量)包含在您的页面中。包括脚本意味着你必须避免变量名,函数名等之间的冲突。

答案 3 :(得分:0)

如果你想从page.php执行你的一些代码,你可以在page.php中包含该文件并创建一个函数,如下所示:

<?php include('page.php');
   $test = function MyHtmlCode();
   echo $text;
?>

答案 4 :(得分:-1)

您没有设置示例代码,因此我假设页面实际打印(使用echo,print等),然后您可以使用php output buffering

<?php


ob_start();

require_once('index.php');

$out = ob_get_contents();

ob_end_clean();

?>

(编辑)

这是一个解决方案,但它绝对不是最佳实践......但是将打印HTML的代码移动到生成HTML并返回它的函数中,然后将这些函数移动到一个单独的文件中包含在index.php和page.php中,然后简单地调用函数。包含一个应该打印一些输出的文件,并用输出缓冲区对其进行扭曲会使代码变得不可读和混乱。

答案 5 :(得分:-1)

你应该试试这个:

ob_start()
include('page.php');
$variable = ob_get_clean();

这会启动一个输出缓冲区,包含page.php文件,并将写入输出缓冲区的所有内容写入$variable