如果您希望长字符串始终包裹在边界容器中,我认为您应该能够通过在原始字符串的每个字母之间插入零宽度空格字符(​
或\xe2\x80\x8b
)来完成此操作。这将具有换行的效果,就好像每个字符都是它自己的单词一样,但不会向最终用户显示空格。这可能会给最终产品的文本搜索或索引带来麻烦,但从美学的角度来看,它应该可靠地完成任务。
因此:
testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets
变成
t​e​s​t​t​e​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s
(显示:“testtestetstetstetstets t e t t t s t e t s t s t s t s t s t s t s t s t s t s s t s T E T E T S T E T E T S T E T S T S T E T S T S T S
因此,如果您包装它,它将完全包装到其容器的边界。这是一个小提琴的例子。
只需编写一个 PHP 脚本来循环字符串并插入空格:
$string="testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets";
$new_string = "";
for($i=0;$i<strlen($string);$i++){
if ($string[$i]==' ' || $string[$i+1]==' '){ //if it is a space or the next letter is a space, there's no reason to add a break character
continue;
}
$new_string .= $string[$i]."​";
}
echo $new_string
这是一个特别好的解决方案,因为与 不同的是wordwrap()
,它会自动调整非固定宽度的字体(基本上是实际使用的字体的 99%)。
同样,如果您需要生成的 PDF 可搜索,这不是一个好方法,但它会让它看起来像您想要的那样。