【发布时间】:2020-04-29 03:04:06
【问题描述】:
我有:
This is a test string. Cool, huh?
我想要:
This is a te-
st string. C-
ool, huh?
也就是说,每行正好是 13 个字符,根据英文规则。也就是说,我不确定“test”是否可以像“test-st”一样被分解,或者“Cool”是否可以被分解为“C-ool”,但这就是我想要的“风格”达到。
我已经进行了大约一千次搜索查询。我找不到任何可以做到这一点的东西。
wordwrap() 没有用,因为它只适用于整个“单词”,并且在大多数行的末尾留下大量空白。
这太令人沮丧了,因为在我解决这个问题之前我无法继续我的项目。我以为会有一个库来解决这个问题,但我发现的唯一甚至远程相关的是 https://github.com/vanderlee/phpSyllable ,但这似乎根本没有做到这一点。该示例没有任何意义,因为它没有显示任何输出,也没有在任何地方提及任何行“宽度”。
【问题讨论】:
-
我不会英语有断字规则。
-
您到底想达到什么目的?你为什么需要这个?我只是好奇你是否以正确的方式去做。也看看 wordwrap(cut) 的最后一个参数。
-
您是在查看固定宽度还是使用连字规则?你不能总是在第 13 个字符上打断并且可读。回到打字机的旧时代,有书籍显示单词可以在哪里拆分,目标是将右边距保持在 5 个字符左右。十三个字符用起来并不多......
-
[您应该能够对自己的帖子发表评论,而不是回复答案。我的观点是您的要求,“根据英语规则,每行正好是 13 个字符”无法获得。那么你想要哪个,固定宽度还是正确的连字符?你不能两者兼得。您的示例需要是您想要的合理示例。
te-st和C-ool暗示您正在寻找固定宽度,因为这些绝不是分割单词的有效位置。 -
FWIW,如果您使用浏览器来显示结果,那么您正在寻找的内容是通过 CSS 完成的。例如
text-align: justify。单词通常不再使用连字符...
标签: php formatting plaintext text-manipulation