0

データを自分のWebサイトにループさせるための次のコードがあります。

$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);

$loop[] =問題は、どうやってforeachループに入れるのかわからないことです。私はこのようにテストしました:

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

しかし、「インクルードの開始に失敗しました...」というエラーメッセージが表示されます。私はこのように前にドットを追加することさえテストしました=$loop[] .=しかしそれもうまくいきませんでした。

どうすれば問題を解決できますか?

前もって感謝します。

4

3 に答える 3

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;
}
于 2012-12-31T06:02:27.440 に答える
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

于 2012-12-31T06:06:53.423 に答える
0

「blogpost-information.php」ファイルに静的情報が保存されていると仮定します。これは、ファイルのコンテンツを追加する方法から、この結論が導き出されるためです。私の推測が正しければ、おそらく次の解決策が機能する可能性があります-

$str = "";
if(file_exists(DIR_REQUIRED.'/blogpost-information.php')){
  $str = fgets(DIR_REQUIRED.'/blogpost-information.php');
}
array_push($loop, "何とか".$str."何とか");

于 2012-12-31T06:09:06.023 に答える