3

文字列をそれぞれ6行の2列に分割しようとしています。問題は、最後の行に(Ø、Æ、Å)が含まれている場合、最初の行にスペースがあっても次の列にジャンプすることです。

これはエンコーディングの問題のようですが、誰かが何が起こっているのか手がかりを得ましたか?列を生成するために使用しているコードは次のとおりです。

$iter = 6;
$str = $shortd;
$count_line = 0;
$str = $shortd;
for ($x=0; $x<$iter;){
  $pos = strpos($str,"<br />");
  $text = mb_substr ($str, 0, $pos + 6);
  $str = mb_substr ($str, $pos + 6);
  echo $text;
  $x++;
}
?>
</td>
<td>
<?
for ($x=$iter; $x<$iter + $iter;){
  $pos = strpos($str,"<br />");
  $text = mb_substr ($str, 0, $pos + 6);
  $str = mb_substr ($str, $pos + 6);
  echo $text;
  $x++;
}
?>
</td>
4

1 に答える 1

5

strpos ()関数はマルチバイトに対応していません。代わりにmb_strpos()を使用する必要があります。そうしないと、位置を処理するときにバイトと文字が混在しています。

于 2012-12-07T09:25:35.900 に答える