PHP 如何包装一个没有空格的很长的单词



>我在 php 站点中包装一个很长的字符串时遇到问题。如果用户输入一个很长的字符串,没有空格,则会破坏设计。例如:"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD仅当字符串之间没有空格时,才会出现问题。普通文本的外观:https://i.stack.imgur.com/9L1Bi.jpg

没有空格的长字符串的外观:https://i.stack.imgur.com/GIoht.jpg

我尝试使用css自动换行属性,但它不能解决问题。

使用 CSS。不要使事情复杂化...

.rectangle {
    width: 200px;
    background: red;
    border: 1px solid #000;
    word-break: break-all;
}
<div class="rectangle">
    <p>DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD</p>
</div>

您可以在此处阅读更多内容。

分词属性将只断开超过容器边缘的任何单词。


阅读一些评论后;我想我会添加一个PHP版本。

<?php
$sentence = 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD';
$wrapped = wordwrap($sentence, 17, "n", true);
?>
<style>
    .rectangle {
        width: 200px;
        background: red;
        border: 1px solid #000;
    }
</style>
<div class="rectangle">
    <p><?= $wrapped; ?></p>
</div>

小提琴:

  • 3v4l
  • WTools.io

这种方法有很多缺点,即你需要知道容器的宽度和字符的宽度来计算断点;然后,如果你有一个响应式网站,这仍然会被破坏。

对于这样的事情,请使用CSS方法。我只是为了完整起见而包含这种方式。

最新更新