自分なりに理解できるように、サンプルPGを作ってみたので晒しておく。
何かの足しにでもどうぞ。
<? header('Content-Type: text/html; charset=Shift_JIS'); // とりあえず初期化。ポストされたらその値、されなかったら(初回起動時等)空文字で初期化する。 $name = isset($_POST['name']) ? $_POST['name'] : ''; // バイト数を求める。 $byte = strlen($name); // 文字数を求める。 $char = mb_strlen($name, 'SJIS-win'); // 一文字ずつ配列へ格納する。 $arrChar = array(); for ($i = 0; $i < $char; $i++) { $arrChar[] = mb_substr($name, $i, 1, 'SJIS-win'); } // 変数・定数 $var = '申\'; // PGソース中に2バイト目が5Cとなる「文字」を記述して変数へ代入するときは、 // 該当文字に続けて「¥」を記述する。 define('MOHSU','申\'); // PGソース中に2バイト目が5Cとなる「文字」を定数として宣言するときも、 // 該当文字に続けて「¥」を記述する。 ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title lang="ja">5C問題のサンプル</title> </head> <body style="font-family: 'MS ゴシック',monospace,sans-serif;"> <form name="form_input" action="" method="post" accept-chaeset="Shift_JIS"> <input type="text" name="name" value="<?=htmlentities($name, ENT_QUOTES, 'Shift_JIS')?>" style="width: 200px;"/> <input type="submit" value="go" /> </form> <p>文字列 :<?=htmlentities($name, ENT_QUOTES, 'Shift_JIS')?></p> <p>バイト数 :<?=$byte?></p> <p>文字数 :<?=$char?></p> <p>配列(var_export()):<pre><? var_export($arrChar); ?></pre></p> <p>配列(var_dump()) :<pre><? var_dump($arrChar); ?></pre></p> <p>配列(要素ずつecho):<? foreach($arrChar as $key => $val) { echo $val; } ?></p> <p>変数($var = '申\'):<?=$var?></p> <p>定数(define('MOHSU','申\')):<? echo MOHSU; ?></p> <p>HTML :申込(HTML部分には\不要)</p> </body> </html>
このサンプルの入力欄に「申込」と入力してポストしてみて。
0 件のコメント:
コメントを投稿