最近碰到一個數據處理的需求:要求是給很多段文字進行處理,每一行數據每隔29行添加換行,但是不能拆分掉單詞,比如hello的h剛好在29位那麼要在hello前就斷開,不多說看代碼,php是世界上最好的語言。
比如有其中的一句:Venham a mim, todos os que estão cansados e sobrecarregados, e eu darei descanso a vocês.
/**
* 思路是先根據空格,把每個單詞都放到數組,然後遍歷數組
* 將數組每個連接字串,如果連接成的字串大於28個那麼放到結果數組resarray
* 如果小於則繼續串數組的下一個,直到數組遍歷完
* 最後再把結果數組的每一個連接就ok
*/
$word = 'Venham a mim, todos os que estão cansados e sobrecarregados, e eu darei descanso a vocês.';
$res = '';
$resarray = array();
$temp = explode(" ", $word);
foreach ($temp as $item){
if((strlen($res) + strlen($item)) <= 28){
$res .= ($item.' ');
}else{
$resarray[] = rtrim($res).'/n';
$res = $item.' ';
}
// 剛好到最後一個結束也要放到結果數組
if($item == $temp[count($temp)-1]){
$resarray[] = $res;
}
}
var_dump($resarray);
$total = '\''.trim(implode('', $resarray)).'\','.PHP_EOL;
echo $total;
結果: