我的功能如下:
function get_div(){
$fileLocation = 'form.php';
$returnString = '<div id="myDiv">' . get_php_file($fileLocation) . '</div>';
echo $returnString;
}
function get_php_file($file){
return file_get_contents($file);
}
问题是我在那个文件中有PHP,我想要执行它就好像它是脚本的一部分。 (而不是在我的整个页面中输出<?php my_function() ?>
)
如果我使用include $file
代替file_get_contents()
,我最终会使用包含的文件,但我$returnString
的剩余部分会被拍摄...
思想?
答案 0 :(得分:1)
您想要输出缓冲。
ob_start();
include($file);
$returnString = ob_get_clean();
答案 1 :(得分:0)
我仍然对你究竟想要做什么感到困惑,但是你不能只包括php文件和w / in感觉有一些你继续追加的字符串($ contentsToReturn)? get_php_file将成为:
function get_php_file($file){
require_once($file)
return $contentsToReturn;
}
或者我错过了什么?
答案 2 :(得分:0)
如果您需要解释php代码,可以使用include或require。如果找不到文件,Include会发出警告,要求将停止执行。以下是PHP.net对此的说法:
哎呀,抱歉没有看到你对需要缓冲字符串的回应。然后按照建议使用ob_start是正确的方法,然后在需要时使用ob_get_contents。当包含文件时,解析将退出PHP模式并在目标文件的开头进入HTML模式,并在结束时再次恢复。因此,目标文件中应作为PHP代码执行的任何代码都必须包含在有效的PHP开始和结束标记中。