如何在变量中执行和获取.php文件的内容?

2022-08-30 18:42:18

我想在其他页面上的变量中获取.php文件的内容。

我有两个文件,和.myfile1.phpmyfile2.php

我的文件2.php

<?PHP
    $myvar="prashant"; // 
    echo $myvar;
?>

现在我想得到myfile2回显的值.php在myfile1的变量中.php,我已经尝试了followwing的方式,但它也采用了包括php标签()在内的所有内容。

<?PHP
    $root_var .= file_get_contents($_SERVER['DOCUMENT_ROOT']."/myfile2.php", true);
?>

请告诉我如何将一个PHP文件返回的内容放入另一个PHP文件中定义的变量中。

谢谢


答案 1

您必须区分两件事:

  • 是否要捕获所包含文件的输出(,,...)并在变量(字符串)中使用输出?echoprint
  • 是否要从包含的文件中返回某些值,并将它们用作主机脚本中的变量?

包含文件中的局部变量将始终移动到主机脚本的当前范围 - 应注意这一点。您可以将所有这些功能合并为一个:

include.php

$hello = "Hello";
echo "Hello World";
return "World";

host.php

ob_start();
$return = include 'include.php'; // (string)"World"
$output = ob_get_clean(); // (string)"Hello World"
// $hello has been moved to the current scope
echo $hello . ' ' . $return; // echos "Hello World"

-功能派上用场,尤其是在使用配置文件时。return

config.php

return array(
    'host' => 'localhost',
     ....
);

app.php

$config = include 'config.php'; // $config is an array

编辑

为了回答您关于使用输出缓冲区时性能损失的问题,我刚刚做了一些快速测试。在我的Windows机器上进行1,000,000次迭代和相应的迭代大约需要7.5秒(可以说不是PHP的最佳环境)。我想说的是,对性能的影响应该被认为是相当小的...ob_start()$o = ob_get_clean()


答案 2

如果您只想由包含的页面“编辑”内容,则可以考虑使用输出缓冲:echo()

ob_start();
include 'myfile2.php';
$echoed_content = ob_get_clean(); // gets content, discards buffer

查看 http://php.net/ob_start


推荐