簡體   English   中英

PHP中的自動換行功能無法按預期運行

[英]Wordwrap in PHP not functioning as expected

我有一個來自舊主機表的長字符串(720個字符)。 由於其中使用空白作為在綠色屏幕上布置文本的一種方法,因此其中有一噸空白。

我正在嘗試通過在PHP中使用自動換行模擬綠屏外觀(以下代碼)。 我嘗試直接在代碼中使用來自字段的調用(而不是使用$ instructions)。

我試過將結果轉換為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等)。 即使將cut boolean設置為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";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM