PHPで文字列に日本語が含まれているかどうか判別する方法

PHPで文字列の中に日本語が含まれているかどうか(文字列が英語のみかどうか)判別する方法になります
strlen()とmb_strlen()の長さを比較して判別する
$str = '文字列';
if(strlen($str != mb_strlen($str,'utf8')) {
//日本語文字列が含まれている
}else{
//日本語文字列が含まれていない
}
正確には、strlen()とmb_strlen()で取得する文字列の長さを比較してマルチバイト文字列が含まれているかどうかで判別する方法ですので絵文字や漢字が含まれていた場合もtrueとなります
正規表現を使って日本語が含まれているかどうか判別する方法
preg_match()を利用して、文字列中の正規表現判別をしています
$str = '文字列';
if(preg_match( "/[ぁ-ん]+|[ァ-ヴー]+/u", $str) ){
//日本語文字列が含まれている
}else{
//日本語文字列が含まれていない
}
漢字のみも許可する
$str = '文字列';
if(preg_match( "/[ぁ-ん]+|[ァ-ヴー]+|[一-龠]/u", $str) ){
//日本語文字列が含まれている
}else{
//日本語文字列が含まれていない
}
全角英数字も含める(この場合、全角英数字だけでもtrueとなります)
if(preg_match( “/[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[一-龠]+|[a-zA-Z0-9]/u”, $str) ){
//日本語文字列が含まれている
}else{
//日本語文字列が含まれていない
}
ディスカッション
コメント一覧
まだ、コメントがありません