2013-07-25 70 views
1

以下内容:替换出现多次的字符

我有一个字符串,其中包含许多空格。为了布局的原因,我想在该字符串的每70个字符后的下一个空格字符中添加一个HTML Break“< br />”。这是多远我是在PHP中:

function news_break($news_string){ 
    for($i = 0; $i <= strlen($news_string); $i++){ 
     if($i % 70 == 0){ //Every 70th char 
      $c = TRUE; 
     } 
     if($c && $news_string[$i] == ' '){ 
      //?? replace space with <br /> 
      $c = FALSE; //Until the next 70th char is found 
     } 
    } 
    return $news_string; 
} 

我知道第一次运行时会因为$ i = 0 71个字符,但事后他将设置$ C = TRUE;每70个字符之后。这并不是说很重要,因为他应该一space_char后事后看,这正是对71的概率是相当低的

回答

1

为什么不

$wrapped = nl2br(wordwrap($news_string, 70)); 

呢?

+0

这不是op提问! nl2br会将\ n \ r \ n转换为
,并且没有空格 – donald123

+0

呃,这就是为什么在那里有'wordwrap',它将字符串分成了X个字符并放入'\ n'中,然后nl2br将其转换为'
',这正是OP想要的。 –

+0

wordwarp是我寻找的东西,谢谢你的回复,虽然 –

0

你必须填写更换...当然给予“解析”字符串返回

function news_break($news_string){ 
    $out = ''; 
    $c = false; 
    for($i = 0; $i <= strlen($news_string); $i++){ 
    if($i % 70 !=0 && $c===false) 
     $out.=$news_string[$i]; 
    elseif($i % 70 == 0 && $news_string[$i]!=''){ //Every 70th char 
     $c = true; 
     $out.=$news_string[$i]; 
    } elseif ($i % 70 == 0 && $news_string[$i]=='') 
     $out.=$news_string[$i].'<br>'; 
    elseif($c=== true && $news_string[$i]=='') { 
     $out.=$news_string[$i].'<br>'; 
     $c=false; 
    } 
    } 
    return $out; 
} 

开箱......没有tryed错误的...

相关问题