我有一个来自旧主机表的LONG(720个字符)字符串。由于他们使用留白作为在绿色屏幕上布局文本的一种方法,其中有大量的空白。
我试图通过在PHP中使用换行来模拟绿屏外观(下面的代码)。我试过直接在代码中使用字段的调用(而不是使用$指令)。
我已经尝试将该结果转换为htmlentities,然后nl2br的结果。
我已经尝试将空白转换为非中断空间。
我已经尝试将特殊字符替换为其他东西(只是作为测试)
我甚至尝试将字符的数量改为4,在这种情况下,所有的地狱都破裂了,它似乎只在空白处切割东西,无论在空白之前或之后的字符组中有多少字符。
但是,在该字符串的文本中有一个段:
"1: B-140(GR) ON 140VHF F1 W/"A ZONE (#) GENERAL ALARM" T & L2: REPEAT STEP 1."
应在L和2之间断开(一般报警T &L 2。等等)。即使将切布尔值设置为true,它也拒绝将L2:切成两行。(即使将字符数量移动到61甚至63)字符串也不会将"L2:"段分开。它要么只在空格处的L之前剪切,要么在空格处的冒号之后剪切。
CODE
$instructions = (wordwrap($instructions,60, "<br />'n", true));
我错过了什么?(寻找隐藏的摄像头)
根据wordwrap的文档:如果cut设置为TRUE,则字符串总是在或指定宽度之前进行包装。换句话说,这个函数不适合这个特定的应用程序。
另一种方法是使用str_split,它生成一个精确切割为60个字符的元素数组:
$instructions = '1: B-140(GR) ON 140VHF F1 W/"A ZONE (#) GENERAL ALARM" T & L2: REPEAT STEP 1.';
$instructions_array = str_split($instructions, 60);
foreach ($instructions_array as $line) {
echo $line."<br />'n";
}