1

下列的:

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

我知道第一次运行将是 71 个字符,因为 $i = 0,但之后他会设置 $c = TRUE; 每 70 个以下字符后。没那么重要,因为他应该在之后照顾一个 space_char,而且它恰好在 71 上的概率非常低

4

2 回答 2

1

为什么不

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

反而?

于 2013-07-25T16:48:54.827 回答
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;
}

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

于 2013-07-25T17:00:04.233 回答