2012-12-31 103 views
0

我有這樣的代碼來循環中的數據到我的網站:包括包括()在一個循環中

$loop = Array(); 

# LOOP 
foreach($sql->query($get_blogposts) AS $blogpost) { 
    echo '<div class="blogpost-avatar" style="background-image: url('.url('images/avatars/avatar-cropped.jpg').');"></div>'; 

    echo '<div class="blogpost-information">'; 
     include(DIR_REQUIRED.'/blogpost-information.php'); 
    echo '</div>'; 

    echo '<div class="blogpost-content">'; 
     echo $blogpost['message']; 
    echo '</div>'; 
} 


echo implode('<hr>', $loop); 

的問題是,我不知道我應如何在foreach循環放$loop[] =。我已經這樣測試:

$loop[] = '<div class="blogpost-avatar" style="background-image: url('.url('images/avatars/avatar-cropped.jpg').');"></div> 

    <div class="blogpost-information">'. 
     include(DIR_REQUIRED.'/blogpost-information.php') 
    .'</div> 

    <div class="blogpost-content">'. 
     $blogpost['message'] 
    .'</div>'; 

但是我收到錯誤消息「失敗打開... for包含」。我甚至測試過在=之前添加一個點,如下所示:$loop[] .=但是這也不起作用。

我該如何解決我的問題?

在此先感謝。

+0

您確定該文件存在嗎?你的包含文件中是否有return語句? – Michael

+0

是的。我包含的文件確實存在。 – Erik

回答

3

如何使用輸出緩衝區!

$loop = Array(); # LOOP 
foreach($sql->query($get_blogposts) AS $blogpost) { 
    $str = ''; 
    $str .= '<div class="blogpost-avatar" style="background-image: url('.url('images/avatars/avatar-cropped.jpg').');"></div>'; 

    $str .= '<div class="blogpost-information">'; 

    ob_start(); 

    include(DIR_REQUIRED.'/blogpost-information.php'); 
    $str .= ob_get_contents(); 
    ob_end_clean(); 

    $str .= '</div>'; 

    $str .= '<div class="blogpost-content">'; 
    $str .= $blogpost['message']; 
    $str .= '</div>'; 
    $loop[] = $str; 
} 
+0

非常聰明,它的工作。非常感謝! ^^ – Erik

+0

不客氣:) – Broncha

0
<?php 

$loop = array(); 

foreach ($sql->query($get_blogposts) as $blogpost) 
{ 
    ob_start(); 

     echo '<div class="blogpost-avatar" style="background-image: url('.url('images/avatars/avatar-cropped.jpg').');"></div>'; 
     echo '<div class="blogpost-information">'; 

     include DIR_REQUIRED.'/blogpost-information.php'; 

     echo '</div>'; 
     echo '<div class="blogpost-content">'; 
     echo $blogpost['message']; 
     echo '</div>'; 

    $loop[] = ob_get_contents(); 
    ob_end_clean(); 
} 

echo implode('<hr>', $loop); 

?> 

http://php.net/manual/en/function.ob-get-contents.php

0

我假定存在存儲在「博客帖子,information.php文件」文件,因爲你要添加的文件的內容的方式,我得出這個結論的一些靜態信息。如果我的猜測是正確的,可能下面的解決方案可能會工作 -

$ str =「」;
if(file_exists(DIR_REQUIRED。'/ blogpost-information.php')){
  $ str = fgets(DIR_REQUIRED。'/ blogpost-information.php');
}
array_push($ loop,「blah blah」。$ str。「blah blah」);