我们将以下代码拼凑在一起,每隔14个字符分割一个字符串,如果分割出现在一个单词的中间,则放置一个连字符:
$_SESSION['projekt_name'] = str_split(get_field('projekt_name'),14);
foreach($_SESSION['projekt_name'] as $projekt_name_part){
if(substr($projekt_name_part,-1)!==' ' && substr($projekt_name_part,0,1)!==' ' && $projekt_name_part !== end($_SESSION['projekt_name'])){
$html_projekt_name .= '<span>'.$projekt_name_part.'-</span><br>';
}elseif(substr($projekt_name_part,0,1)==' '){
$html_projekt_name = substr($html_projekt_name,0,-12).'</span><br><span>'.substr($projekt_name_part,1).'</span><br>';
}else{
$html_projekt_name .= '<span>'.$projekt_name_part.'</span><br>';
}//end if
} //end for each
一般来说这很好用。例如:
Array ( [0] => BURGERISTA my [1] => salad Plus Cit [2] => y)
重新排列为:
<span>BURGERISTA my </span><br><span>salad Plus Cit-</span><br><span>y</span>
但有时分裂发生得太接近一个单词的开头。例如:
Array ( [0] => voestalpine Ti [1] => egelleitstand)
重新排列为:
<span>voestalpine Ti-</span>
<br>
<span>egelleitstand</span>
理想情况下,这应该重新排列为:
<span>voestalpine Tie-</span>
<br>
<span>gelleitstand</span>
或作为:
<span>voestalpine</span>
<br>
<span>Tiegelleitstan-</span>
<br>
<span>d</span>
我们如何进行分割,以使单词不会过于接近开头(即分割前最少3个字符)?
提前感谢您的帮助!