投稿者 |
メッセージ |
|
< PHPプログラミング ~ 「半角カナ」「半角数字」「半角スペース」のチェック |
|
時間:
水 10月 01, 2008 1:01 am
|
|
|
|
引数で受け取った文字列が
「半角カナ」「半角数字」「半角スペース」のみだったらFALSEにしたいです。
下記のような方法で問題ないでしょうか?
うまくチェック出来ていないようなので...
また、他に良い方法がありましたら教えてください。
文字コードは'utf-8'です。
function Check_hankana($str)
{
$cha = array('ア','イ','ウ','エ','オ',
'カ','キ','ク','ケ','コ',
'サ','シ','ス','セ','ソ',
'タ','チ','ツ','テ','ト',
'ナ','ニ','ヌ','ネ','ノ',
'ハ','ヒ','フ','ヘ','ホ',
'マ','ミ','ム','メ','モ',
'ラ','リ','ル','レ','ロ',
'ヤ','ユ','ヨ','ワ','ン','゜','゛',' ',
'1','2','3','4','5','6','7','8','9','0');
$flg = 0;
for ($i=0; $i<strlen($str); $i++){
for($j=0; $j<count($cha);$j++){
if ($str[i] != $cha[j]) {
$flg = 1;
break;
}
}
}
if ($flg == 1)return ture;
else return false;
} |
|
|
|
|
|
|
|
時間:
土 10月 04, 2008 11:27 am
|
|
|
|
hidemaru です。
引数で受け取っているのは文字列であって配列ではないので、
if ($str[i] != $cha[j]) {
ではなくて、
if (mb_substr($str,$i,1,"utf-8") != $cha[$j]) {
というように、mb_substr を使って文字列の中の一部を取り出して
比較しないといけません。
後、記述で $cha[j] ではなく 添字は j ではなく $j でないといけません。 |
|
|
|
|
|
|
|
|
新規投稿: 不可 返信: 不可t 自分の記事の編集: 不可 自分の記事の削除: 不可 投票への参加: 不可
|
|