BBCode结束标记杀死PHP mysqli查询

时间:2017-08-08 16:38:31

标签: php bbcode

老实说,我不知道发生了什么。

它工作正常,直到我将结束标记放在BBCode标记上。

所以这样可以正常工作:

$article = <<<EOF
<article>
  <code>
  [b]$title
  </code>
</article>
EOF;

虽然这样,会杀死整个代码而不打印任何结果:

$article = <<<EOF
<article>
  <code>
  [b]$title[/b]
  </code>
</article>
EOF;

我通过将完全相同的代码放入普通的旧HTML中进行了双重检查,它会很好地显示代码。我也试过[/ b] $ title,这很有效,我只是没有开头和结尾的标签。

以下是编码的其余部分:

require ("db_connect.php");

$residential = mysqli_query($db_connect,"SELECT * FROM residential ORDER BY id");

while ($row = mysqli_fetch_array ($residential)) {
  include "results.php";
  $title = "$row['title']";
  echo $article;
  }

1 个答案:

答案 0 :(得分:0)

尝试为循环使用不同的字符串类型和顺序,看看它是否有效:

<强> results.php

$article = "
<article>
  <code>
  [b]{$title}[/b]
  </code>
</article>";

$article = "
<article>
  <code>
  [b]".$title."[/b]
  </code>
</article>";

ob_start();
?>
<article>
  <code>
  [b]<?php echo $title ?>[/b]
  </code>
</article>
<?php
$article = ob_get_contents();
ob_end_clean();

然后在循环中:

while ($row = mysqli_fetch_array($residential)) {
    $title = $row['title'];
    include('results.php');
    echo $article;
}

或不在循环中包含该页面:

while ($row = mysqli_fetch_array($residential)) {
    $title = $row['title'];
    echo "
    <article>
        <code>
            [b]".$title."[/b]
        </code>
    </article>";
}