前提・実現したいこと
ctype_alnumを使い文字列に日本語が含まれてるかどうかの判定を行っているのですが、
文字列に半角スペース+英数字でも日本語とされてしまいます
半角スペースは日本語として判定させない方法はありませんでしょうか?
追記
ctype_alnumを使った判定はダメだとわかりました
半角スペースだけに限らず'や!が含まれた場合日本語となってしまうようです
半角英数字、半角記号は全て日本語と判定させない方法はありませんでしょうか?
該当のソースコード
PHP
1<?php 2$str="star a";//半角スペースを入れると日本語と判定されてしまう 3if (!ctype_alnum($str)) { 4echo "日本語が含まれています"; 5}else{ 6echo "英数字です"; 7} 8?>
半角スペースを日本語と認識させないことはできた
PHP
1<?php 2$str="star a"; 3$aValid = array(' '); 4if(!ctype_alnum(str_replace($aValid, '', $str))){ 5echo "日本語が含まれています"; 6}else{ 7echo "英数字です"; 8} 9?>
PHPマニュアルが一番詳しいですが、確認されたのでしょうか。