[PHP-users 18154]Re: 縦書き変換スクリプト

K.Nakajima naka @ nissho-ele.co.jp
2003年 10月 1日 (水) 12:06:48 JST


中島と申します。
こんにちは。

スクリプト自体は大きな間違いは無いと思いますが
結果の参照方法が違っているようです。
スクリプトの最後に
var_dump($row);
と入れると解ると思います。

あと、
 $char = array();
は
foreach($div_rows as $value)
のループ内に入れないと、後の行の方が文字数が少ない
場合にゴミが混じりますよ。

On Wed, 1 Oct 2003 11:36:21 +0900
"大原 美樹" <o-hara.miki @ pop-cute.net> wrote:

> こんにちは、大原です。
> 
> 現在、ユーザが投稿した文章を縦書きに変換するスクリプトを作成しています。
> しかし、行き詰まってしまったのでお知恵を拝借いたしたく投稿します。
> お仕事のおじゃまになりましたら、恐縮です。
> 
> //<--本文整形
> $honbun = htmlspecialchars($_POST["honbun"], ENT_NOQUOTES);
> $honbun = mb_convert_kana($honbun, ASKV);
> $honbun = preg_replace("/[\r\t]/", "", $honbun);
> //-->
> //<--行に分割
> $div_rows = preg_split("/[\n]/", $honbun);
> //-->
> //<--文字に分割
> $char = array();
> $row = array();
> $max_chars_few = 0;
> $j = 0;
> foreach($div_rows as $value){
>     $chars_few = mb_strlen($value);
>     for($i =0; $i < $chars_few; $i++)$char[$i] = mb_substr($value, $i, 1);
>     $row[$j] = $char;
>     if($max_chars_few < $chars_few)$max_chars_few = $chars_few;
>     $j++;
> }
> //-->
> 
> 以上のようなスクリプトを作成したのですが、
> 文字が上手く配列に入ってくれません。
> 具体的には以下のような感じです。
> 
> $_POST["honbun"] = あいうえお ←の場合
> $row[0]$char[0] = あ
> $row[0]$char[1] = い
> $row[0]$char[2] = う
> $row[0]$char[3] = え
> $row[0]$char[4] = お
> 
> $_POST["honbun"] = あいうえお
>                    123        ←の場合
> $row[0]$char[0] = 1
> $row[0]$char[1] = 2
> $row[0]$char[2] = 3
> $row[0]$char[3] = え
> $row[0]$char[4] = お
> $row[1]$char[0] = 1
> $row[1]$char[1] = 2
> $row[1]$char[2] = 3
> $row[1]$char[3] = え
> $row[1]$char[4] = お
> 
> となってしまうのです。
> 配列のポインタの動かし方に問題があるのかと思うのですが、
> 一人で考えていて煮詰まってしまいました。
> お力添えいただければ幸いです。
> 
> ♪☆★☆★☆※☆★☆★☆♪
> 大原 美樹
>   o-hara.miki @ pop-cute.net
> ♪☆★☆★☆※☆★☆★☆♪
> 
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users




PHP-users メーリングリストの案内