如何根据PHP的内容选择分割字符串的最佳点

时间:2015-07-03 22:15:04

标签: php html

我们将以下代码拼凑在一起,每隔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个字符)?

提前感谢您的帮助!

0 个答案:

没有答案