1

恐ろしいタイトル、私は知っています。

ある種のワードラップが欲しいのですが、マークアップは言うまでもなく、UTF-8を台無しにするwordwrap()を使用できないことは明らかです。

私の問題は、この「eeeeeeeeeeeeeeeeeeeeeeeeeeee」のようなものを取り除きたいということです..しかし、もちろんそれより長くなります。一部のジョークスターは、私のサイトにそのようなものを置くのが面白いと感じています。

だから私がこのような文字列を持っているとき「こんにちは、どうですか?'areeee'を分割したい-ゼロ幅スペース()文字を持つもの。

文字列は常に同じ文字であるとは限らず、文字列は常に大きな文字列内にあります。したがって、str_len、substr、wordwrapはすべて説明に適合しません。

誰が私を助けることができますか?

4

2 に答える 2

1

これを3つのステップで実行します

  1. 文字列と空白を分割します
  2. 文字列内の各単語に対してstr_len/trimを実行します
  3. 文字列を連結して元に戻す

これの欠点は、10文字より長い単語も壊れてしまうことです。したがって、ここにいくつかのものを追加して、同じ文字が何度も連続しているかどうかを確認することをお勧めします。

$string = "Hello how areeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee you doing?";
$strArr = explode(" ",$string);
foreach($strArr as $word) {
if(strlen($word) > 10) {
    $word = substr($word,0,10);
}

$wordArr[] = $word;
}

$newString = implode(" ",$wordArr);
print $newString;  // Prints "Hello how areeeeeeee you doing?"
于 2012-06-26T21:29:26.127 に答える
1

これはPHPソリューションではないと言いましたが、問題がスクリプトの表示である場合は、ワードラップと呼ばれる単純なCSS3ルールを使用してみませんか?

あなたのコンテナがであるdivとしましょうid="example"、あなたは書くことができます:

#example
{
  word-wrap: break-word;
}
于 2012-06-26T21:33:25.617 に答える