【问题标题】:Php is not working but iframe is working finePHP 不工作,但 iframe 工作正常
【发布时间】:2011-05-15 03:03:19
【问题描述】:

我有几组代码可以显示在网页的右侧。我正在使用这个地方来展示一些用户信息和一些短广告。对于广告,我在我的数据库中使用该代码。现在的问题是我想显示一个外部 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 代码。它没有被执行。我试着把&lt;?php include(\'/home/xxxxxxx/public_html/xxxxxxxa.php\'); ?&gt; 和所有其他类型的替代品,但它打印原始 php 代码。

【问题讨论】:

    标签: php mysql ajax


    【解决方案1】:
    '<div><?php include("/home/xxxxxxx/public_html/xxxxxxxa.php"); ?></div>
    

    PHP 不会在字符串中执行(以上就是全部内容)。

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

    $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>'
    

    【讨论】:

    • 工作,但页面的所有功能都不起作用。页面包含几个 img,在第一次加载时,我正在加载 10 个 img,当用户关闭时,它将加载 5 个 img。脚本在 iframe 中工作正常,但在这里,您的方法只加载了第一组 10 个 img 。我希望在用户滚动和向下时加载额外的 5 张图像。你知道发生了什么吗?我猜与 ob_start thar 页面被视为单独的页面 .?????因为我没有包含 javascript 和 css 是那个特定页面,因为这些 js 和 css 文件已经存在于我包含此文件的主页中。php
    【解决方案2】:

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

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

    如果它在更高级别或更高级别的目录或子目录中,则应上移至此级别,然后下移至文件。

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

    ../../ 上升 2 个级别,您可以将其设置为您想上升的任意多个级别。

    【讨论】:

    • 我尝试了你所建议的所有替代方案,只喜欢 file.php 和 .../ 但它不起作用
    • 您能否发布不工作的文件的内容,不仅是功能和服务器目录树的快照(文件夹已展开)吗?您可以隐藏您的用户名/FTP 详细信息和任何敏感数据
    【解决方案3】:

    如果你想在一个变量中获取外部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 变量的任何位置。

    【讨论】:

    • 工作,但页面的所有功能都不起作用。页面包含几个 img,在第一次加载时,我正在加载 10 个 img,当用户关闭时,它将加载 5 个 img。脚本在 iframe 中工作正常,但在这里,您的方法只加载了第一组 10 个 img。我希望在用户滚动和向下时加载额外的 5 张图像。你知道发生了什么吗?我猜与 ob_start thar 页面被视为单独的页面 .?????因为我没有包含 javascript 和 css 是那个特定页面,因为这些 js 和 css 文件已经存在于我包含此文件的主页中。php
    猜你喜欢
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    相关资源
    最近更新 更多