2012-03-10 15 views
6

Sto cercando la soluzione più rapida , a una stringa in parti, senza .str_split senza word-wrap

$strText = "The quick brown fox jumps over the lazy dog"; 

$arrSplit = str_split($strText, 12); 

// result: array("The quick br","own fox jump","s over the l","azy dog"); 
// better: array("The quick","brown fox","jumps over the","lazy dog"); 

risposta

21

Si può effettivamente utilizzare wordwrap(), immessa nella explode(), utilizzando il carattere di nuova riga \n come delimitatore. explode() dividerà la stringa su newline prodotta da wordwrap().

$strText = "The quick brown fox jumps over the lazy dog"; 

// Wrap lines limited to 12 characters and break 
// them into an array 
$lines = explode("\n", wordwrap($strText, 12, "\n")); 

var_dump($lines); 
array(4) { 
    [0]=> 
    string(9) "The quick" 
    [1]=> 
    string(9) "brown fox" 
    [2]=> 
    string(10) "jumps over" 
    [3]=> 
    string(12) "the lazy dog" 
} 
+0

+1 molto furbo. –

+3

Nota: l'utilizzo di false (impostazione predefinita) come quarto parametro impedisce l'interruzione delle parole durante il wrapping. Esattamente quello di cui avevo bisogno. Se non ti interessa rompere le parole, imposta questo su true. – rncrtr

Problemi correlati