是否可以将PHP代码执行到变量中?例如,我在同一目录中有index.php
和page.php
个文件。如果您执行page.php
,您将拥有HTML页面的一部分。我想把它作为字符串放入index.php
中的变量中。
有什么建议吗?
答案 0 :(得分:4)
您可以使用输出缓冲区:
<?php
ob_start();
include('page.php');
$page = ob_get_clean();
?>
请注意,page.php仍然在同一个上下文中执行(全局变量,函数等继续存在)
通常做类似的事情听起来像破碎的设计和page.php应该被正确地重写。
答案 1 :(得分:2)
include('page.php');
这将包括从page.php
到index.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