$markup_array = array();
$name_array = array();
while($array = $query->fetch_assoc()) {
$name_array = $array['plugin_name'];
$markup = '{$'.$array['plugin_name'].'}';
}
$callback = str_replace($markup, include("plugins/".$name_array."/".$name_array.".php"), $buffer);
这是完整的代码
function callback($buffer)
{
GLOBAL $mysqli;
GLOBAL $db_prefix;
GLOBAL $parameters;
$query = $mysqli->query("...query...");
$count = $query->num_rows;
if($count > 0) {
$markup_array = array();
$name_array = array();
while($array = $query->fetch_assoc()) {
$name_array = $array['plugin_name'];
$markup = '{$'.$array['plugin_name'].'}';
}
$callback = str_replace($markup, include('plugins/'.$name_array.'/'.$name_array.'.php'), $buffer);
}
return $callback;
}
function load_theme() {
GLOBAL $mysqli;
GLOBAL $db_prefix;
GLOBAL $parameters;
$query = $mysqli->query("...query...");
$count = $query->num_rows;
if($count > 0) {
$theme_parameters = array();
$array = $query->fetch_assoc();
$theme_parameters['ID_THEME'] = $array['ID_THEME'];
$theme_parameters['theme_name'] = $array['theme_name'];
$theme_parameters['theme_version'] = $array['theme_version'];
$theme_parameters['theme_folder'] = 'themes/'.$array['theme_folder'].'/';
$theme_parameters['theme_status'] = $array['theme_status'];
//loading pages
ob_start("callback");
require_once($theme_parameters['theme_folder'].'/header.php');
require_once($theme_parameters['theme_folder'].'/body.php');
require_once($theme_parameters['theme_folder'].'/footer.php');
ob_end_flush();
文件我想包括:
<ul id="horizontalmenu">
<li class="parent">Home</li>
<?
$query_pages = $mysqli->query("...query...");
while($pages_array = $query_pages->fetch_assoc())
{
echo '<li class="parent"><a href="'.$pages_array['ID_PAGE'].'_'.text2url($pages_array['title']).'.html">'.$pages_array['title'].'</a>';
list_pages_home_child($id_parent);
echo '</li>';
}
?>
<li class="parent">Contact</li>
</ul>
所以,include返回1.关于如何返回include的文件内容而不仅仅是“1”的任何线索?
在我想要包含的php文件中,有$ var和函数,所以file_get_contents()是不够的。我得到Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0
答案 0 :(得分:0)
在文档中删除此include example,您需要在return
文件中添加$name_array . "/" . $name_array . ".php"
语句,以便从包含文件中取回任何内容。
return.php
<?php
$var = 'PHP';
return $var;
?>
noreturn.php
<?php
$var = 'PHP';
?>
testreturns.php
<?php
$foo = include 'return.php';
echo $foo; // prints 'PHP'
$bar = include 'noreturn.php';
echo $bar; // prints 1
?>
如果您想要文件中的实际PHP代码,请使用file_get_contents()。