Php不起作用,但iframe工作正常

时间:2011-05-15 03:03:20

标签: php mysql ajax

我有几组代码可以显示在我的网页右侧。我使用这个地方来显示一些用户信息和一些广告。对于我在我的数据库中使用该代码的广告。现在的问题是我想显示一个外部php文件,它位于我试图包含的同一目录或需要这个php文件。

但我不知道为什么这不起作用。我尝试使用iframe但工作正常,但我想使用php include,但它不起作用。请告诉我在哪里做错了。这是我的代码:

if (is_array($data['blocks'])) {
        $output .= '<div id="appside">';
        foreach($data['blocks'] as $block) {
            if (is_array($block)) {
                $output .= '
                <div class="block">';
                if ($block['title']) {
                    $output .= '<div class="block_title">'.$block['title'].'</div>';
                }
                $output .= '<div class="block_content">
                '.$block['content'].
                '</div>
                </div>
                ';
            }
        }
        $output .= get_gvar('theme_block_sidebar').

        '<div><?php include("/home/xxxxxxx/public_html/xxxxxxxa.php"); ?></div>


        </div>

                ';// end of app_sidebar

我尝试了所有简短的替代品,但它打印原始的PHP代码。它没有被执行。我试图放<?php include(\'/home/xxxxxxx/public_html/xxxxxxxa.php\'); ?> 和所有其他类型的替代品,但它打印原始的PHP代码。

3 个答案:

答案 0 :(得分:1)

'<div><?php include("/home/xxxxxxx/public_html/xxxxxxxa.php"); ?></div>

PHP不会在字符串内执行(以上都是这样)。

您无法真正连接include语句(除非包含的文件通过return返回内容)。鉴于我无法判断您的代码片段是否在函数内部或者如何执行,我最好的解决方案是使用输出缓冲。

$output .= get_gvar('theme_block_sidebar') . '<div>';

ob_start();
include "/home/xxxxxxx/public_html/xxxxxxxa.php";
$output .= ob_get_contents();
ob_end_clean();

$output .= '</div>'

答案 1 :(得分:0)

如果您要包含的文件与此文件位于同一目录中,则应仅包含文件名

<?php include('filename.php'); ?>

如果它位于更高级别或更高级别的目录或子目录中,则应该向上移动到此级别,然后向下移动到文件。

<?php include('../../path/to/file.php'); ?>

其中../../上升了2级,您可以将其设置为您想要的级别。

答案 2 :(得分:0)

如果你想从变量中获取外部php文件的输出,你可以使用PHP buffering functions来获取它:

ob_start();
include("/home/xxxxxxx/public_html/xxxxxxxa.php");
$output_from_php_file = ob_get_contents();
ob_end_clean();

然后,您可以$output_from_php_file$output追加到{{1}}变量中。