0

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

4

6 回答 6

5

您可以使用输出缓冲区:

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

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

一般来说,做这样的事情听起来像是损坏的设计和 page.php 应该被正确地重写。

于 2012-12-05T10:22:44.017 回答
2
include('page.php');

page.php这将包括从index.php

于 2012-12-05T10:19:20.170 回答
0

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

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

$contents = curl_exec ($ch);

请注意,当您想要的只是响应时,没有必要将其他脚本(和相关变量)包含到您的页面中。包含脚本意味着您必须避免变量名、函数名等之间的冲突。

于 2012-12-05T10:21:23.310 回答
0

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

<?php include('page.php');
   $test = function MyHtmlCode();
   echo $text;
?>
于 2012-12-05T10:22:34.627 回答
-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,然后简单地调用这些函数。包括一个应该打印一些输出的文件,并用输出缓冲区扭曲它会使代码不可读和混乱。

于 2012-12-05T10:23:42.527 回答
-2

你应该试试这个:

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

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

于 2012-12-05T10:23:44.330 回答