我有几组代码可以显示在我的网页右侧。我使用这个地方来显示一些用户信息和一些广告。对于我在我的数据库中使用该代码的广告。现在的问题是我想显示一个外部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代码。
答案 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}}变量中。