2015-04-23 93 views
0

我想分割一个字符串后,将x个字符,并将其放在数组中。但是如果x在一个词的中间,我不需要切词。我期望的是分裂为劣势这个词。PHP - 分割字符串后的数组X字符没有限制的切割字

我尝试这样做:

CODE

$string = "Helllooooo I'mmm <strong>theeeeee</strong> <em> woooooorrd</em> theeee loooonnngessttt"; 
$desired_width = 24; 

$str = wordwrap($string, $desired_width, "\n"); 

var_dump($str); 
die; 

输出

string 'Helllooooo I'mmm 
<strong>theeeeee</strong> 
<em> woooooorrd</em> 
theeee loooonnngessttt' (length=86) 

如何把它放在阵列?还有另一种方法可以做到吗?这和爆炸()之间的混合?谢谢 !

+1

为什么不直接用 “\ n” 作为分隔符爆炸,现在? – Rizier123

+0

您需要在PHP中使用正则表达式和/或DOM函数。 – vaso123

+1

是的'爆炸'的混合,你说得对 – Ghost

回答

1
$string = "Helllooooo I'mmm <strong>theeeeee</strong> <em> woooooorrd</em> theeee loooonnngessttt"; 
$desired_width = 24; 

$str = wordwrap($string, $desired_width, "\n"); 
$arr = explode("\n", $str); 
var_dump($arr); 
die; 
+0

我也是这么做的(5分钟前):)谢谢! '$ str = explode(“\ n”,wordwrap($ string,$ desired_width));' – Zagloo

1

试试这个

$string = "Helllooooo I'mmm <strong>theeeeee</strong> <em> woooooorrd</em> theeee loooonnngessttt"; 
$desired_width = 24; 

$str = wordwrap($string, $desired_width, "***"); 
$str = explode("***",$str); 
var_dump($str); 
die; 

输出

array(4) { 
    [0]=> 
    string(16) "Helllooooo I'mmm" 
    [1]=> 
    string(25) "<strong>theeeeee</strong>" 
    [2]=> 
    string(20) "<em> woooooorrd</em>" 
    [3]=> 
    string(22) "theeee loooonnngessttt" 
} 
+1

Huff,好东西OP在其字符串中没有几个星号! – Rizier123

+1

thx!对于我的信息,“***”是什么? – Zagloo

+0

您需要使用任何不希望存在于字符串中的文本或符号作为分割点。 如果字符串是动态的并且它包含许多恒星(在本例中)或新行'/ n'(在以前的解决方案中),则会出现问题。 –