HTML <pre> PHP 中的自动换行不起作用

HTML <pre> word wrapping in PHP doesn't work

我一直在一个论坛上工作,我已经把所有的东西都按照它的方式工作了,我试着换行看看它是否有效,基本上那部分代码看起来像这样 在 PHP 之前我得到了一些 HTML 风格:

<style>
    pre {
        white-space: pre-wrap; 
        white-space: -moz-pre-wrap;
        white-space: -pre-wrap;
        white-space: -o-pre-wrap;
        word-wrap: break-word;    
        font-size: 20px;
        margin: 0% 8% 0px 8%; 
    }
</style>

然后在一堆MySQL事情之后

echo '<table style="height: 21px;" width="100%">';
while($forumcomrow=mysqli_fetch_array($forumcomres))
{
    echo '<tr><td>some text</td><td><pre>Some Very Long Text From Mysql </pre></td></tr></br>';
}
echo '</table>';

我删除了所有内容,只保留了它的样式和 table 的回显,当我只回显 pre 标签时,它会将它包装在屏幕的末尾,但只要我放它在 table 中(大小无关紧要,即使我将 table 的宽度设置为 5px)它仍然会离开屏幕 10 英里,直到它开始环绕。

事情是这样的:

在上图中,您可以看到它的一部分,但是文字超出屏幕的长度大约是您在上面看到的长度的 5 倍,然后才开始换行

我已经弄清楚是什么给它带来了问题,如果它有空格 ("aaaa aaa aaa aa aa") 它会换行但如果它是一个长单词 ("aaaaaaaaa") 它不会换行,我不知道如何解决它,我刚刚弄清楚是什么导致了这个问题。

因为最后的<br>标签,我前段时间遇到了同样的问题。 <br> 每次都首先应用,然后 table 被包裹。

去掉<br>最后

echo '<tr><td>some text</td><td><pre>Some Very Long Text From Mysql </pre></td></tr>';

然后它将完美运行。