替换多次出现的字符

时间:2013-07-25 16:44:32

标签: php string str-replace

以下:

我有一个包含许多空格的字符串。我想添加一个HTML Break“< br />”出于布局原因,在此字符串的每70个字符后的下一个空格中。这是我在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;
}

我知道第一次运行将是71个字符,因为$ i = 0,但之后他将设置$ c = TRUE;每70个以下的字符后。不是那么重要,因为他之后应该照看一个space_char,并且它完全在71上的可能性非常低

2 个答案:

答案 0 :(得分:1)

为什么不

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

代替?

答案 1 :(得分: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;
}

开箱即用......没有尝试过错误......