是否可以制作这样的东西?
// file.php
$string = require('otherfile.php');
echo $string;
// otherfile.php
<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body>
<?php require 'body.php';?>
</body>
</html>
// body.php
<p>Lorem ipsum something</p>
获得此输出?
<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body>
<p>Lorem ipsum something</p>
</body>
</html>
我知道代码不起作用,但我希望你理解我的意思。
答案 0 :(得分:48)
file.php
ob_start();
include 'otherfile.php';
$string = ob_get_clean();
答案 1 :(得分:11)
$string = file_get_contents('otherfile.php',TRUE);
echo $string
对file_get_contents()使用TRUE参数意味着它将使用include路径进行搜索,就像普通的include或require
一样答案 2 :(得分:3)
另一个很酷的事情要知道,但SmokeyPHP的答案可能会更好:
<?php
$var = require 'myfile.php';
myfile.php:
<?php
return 'mystring';
答案 3 :(得分:1)
我猜你已经解决了这个问题。在这些日子里我遇到了同样的问题,我找到了一个使用eval,file_get_contents和输出缓冲函数的漂亮解决方案:
ob_start();
eval('?>' . file_get_contents( $fileToRequire, TRUE ) . '<?php ');
$this->output = ob_get_contents();
ob_end_clean();
你必须关心的唯一一件事是将php代码放在标签<?php ?>
之间,不要让任何php标签打开。
“&GT;?是强制性的,否则你将从eval函数中得到错误
希望它有所帮助!
干杯!
答案 4 :(得分:0)
是的,您可以在文件中使用return语句,require和includes将返回返回的值,但您必须修改该文件以更像
<?php
return '<p>Lorem ipsum something</p>';
?>
检查包含文档下的示例#5 http://www.php.net/manual/en/function.include.php
答案 5 :(得分:0)
使用模板引擎,例如Jinja http://jinja.pocoo.org/docs/
答案 6 :(得分:0)
我需要一个针对Joomla和dompdf的解决方案,我找到了这个解决方案
ob_start();
require_once JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'file.php';
$html = ob_get_clean();
仅具有require_once的用户才能在加载的脚本中使用Joomla中的所有功能。 file.php是一个重命名为.php的.html文件,并在其中添加了php代码。
答案 7 :(得分:-2)
<?php require "otherfile.php";