代码之家  ›  专栏  ›  技术社区  ›  Teej

用PHP替换输出中的变量

php
  •  1
  • Teej  · 技术社区  · 16 年前

    现在我有了这个代码。

    <?php
        error_reporting(E_ALL);
    
        require_once('content_config.php');
    
        function callback($buffer)
        {
            // replace all the apples with oranges
            foreach ($config as $key => $value)
            {
                $buffer = str_replace($key, $value, $buffer);
            }
            return $buffer;
        }
    
        ob_start("callback");
    ?>
    some content
    <?php
    
    ob_end_flush();
    
    ?>
    

    在content_config.php文件中:

    $config['SiteName'] = 'MySiteName';
    $config['SiteAuthor'] = 'thatGuy';
    

    我要做的是,用配置数组的键替换具有值的占位符。

    现在,它不起作用:(

    1 回复  |  直到 16 年前
        1
  •  2
  •   Galen    16 年前

    您的回调函数看不到$config。必须将其作为参数传递或声明为全局

    global $config;
    

    http://php.net/manual/en/language.variables.scope.php

    作为旁白,您可以使用带有str_replace的数组

    $buffer = str_replace(array_keys($config), array_values($config), $buffer);
    

    这样就避免了一个循环,这总是很好的。

    推荐文章