Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP代码执行到变量中_Php - Fatal编程技术网

将PHP代码执行到变量中

将PHP代码执行到变量中,php,Php,是否可以将PHP代码执行到变量中?例如,我在同一目录中有index.php和page.php文件。如果执行page.php,您将拥有HTML页面的一部分。我想将其作为字符串放入index.php中的变量中。 有什么建议吗 include('page.php'); 这将包括从page.php到index.php 这将包括从page.php到index.php的所有内容。您可以使用检索脚本的输出并将其保存到变量中。下面是您在index.php中要执行的操作: $ch = curl_init();

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

include('page.php');
这将包括从
page.php
index.php

这将包括从
page.php
index.php

的所有内容。您可以使用检索脚本的输出并将其保存到变量中。下面是您在index.php中要执行的操作:

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

$contents = curl_exec ($ch);
请注意,当您只需要响应时,不需要在页面中包含其他脚本(以及相关变量)。包含脚本意味着您必须避免变量名、函数名等之间的冲突。

您可以使用检索脚本的输出并将其保存到变量。下面是您在index.php中要执行的操作:

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

$contents = curl_exec ($ch);

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

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

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

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

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

您可以使用输出缓冲区:

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

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


一般来说,这样做听起来像是破坏了设计,应该正确重写page.php。

您可以使用输出缓冲区:

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

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


一般来说,这样做听起来像是破坏了设计,page.php应该被正确地重写。

您没有一个示例代码,所以我假设页面实际打印(使用echo、print等),然后您可以使用


(编辑)


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

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


(编辑)

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

您应该尝试以下方法:

ob_start()
include('page.php');
$variable = ob_get_clean();
这将启动输出缓冲区,包括
page.php
文件,并将写入输出缓冲区的所有内容写入
$variable
您应该尝试以下操作:

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

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

查看是否希望page.php的结果成为index.php结果的一部分?@Lobo OP想要的是评估结果,而不是我认为的原始内容……是的,
file\u get\u contents
不执行PHP代码您应该使用输出缓冲和include,这样include将在缓冲区将输出收集到内存时执行代码。请参阅我的评论查看您是否希望page.php的结果成为index.php结果的一部分?@Lobo OP想要的是经过计算的结果,而不是原始内容,我认为……是的,
file\u get\u contents
不执行php代码您应该使用输出缓冲并包括,这样,当缓冲区将输出收集到内存中时,include将执行代码。请参阅我的commentNope,它运行脚本,但不获取输出。我需要将字符串放入变量中,而不仅仅是
include
Nope,它运行脚本,但不获取输出。我需要将字符串放入变量中,而不仅仅是
include
,它运行脚本,但不获取输出,但不会得到输出。+1,但这会将另一个脚本中的变量带入范围,这是不必要的。+1,但这会将另一个脚本中的变量带入范围,这是不必要的。