str_replace包含返回1

时间:2014-01-26 08:15:24

标签: php arrays include str-replace

$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

1 个答案:

答案 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()