2012-03-10 23 views
6

Tôi đang tìm giải pháp nhanh nhất , tới một chuỗi thành các phần, không có .str_split mà không cần 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"); 

Trả lời

21

Bạn thực sự có thể sử dụng wordwrap(), đưa vào explode(), sử dụng kí tự xuống dòng \n là dấu phân cách. explode() sẽ chia chuỗi trên dòng mới được tạo bởi 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 rất xảo quyệt. –

+3

Lưu ý: sử dụng false (mặc định) làm thông số thứ tư ngăn không cho các từ bị ngắt khi gói. Chính xác những gì tôi cần. Nếu bạn không quan tâm đến việc phá vỡ các từ, hãy đặt từ này thành true. – rncrtr