投稿者 メッセージ
<  PHPプログラミング  ~  「半角カナ」「半角数字」「半角スペース」のチェック
かえる
投稿1時間: 水 10月 01, 2008 1:01 am  引用



登録日: 2008年9月 28日
投稿記事: 1

引数で受け取った文字列が
「半角カナ」「半角数字」「半角スペース」のみだったら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;
}
トップに移動
ユーザー情報を表示 メッセージを送信
hidemaru
投稿1時間: 土 10月 04, 2008 11:27 am  引用



登録日: 2006年5月 05日
投稿記事: 8

hidemaru です。
引数で受け取っているのは文字列であって配列ではないので、
if ($str[i] != $cha[j]) {
ではなくて、
if (mb_substr($str,$i,1,"utf-8") != $cha[$j]) {
というように、mb_substr を使って文字列の中の一部を取り出して
比較しないといけません。

後、記述で $cha[j] ではなく 添字は j ではなく $j でないといけません。
トップに移動
ユーザー情報を表示 メッセージを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.