如何将ctype_alpha与UTF-8一起使用?
我有这段代码:
if(empty($_POST) === false) {
if (isset($_POST['first_name']) && !empty ($_POST['first_name'])){
if (ctype_alpha($_POST['first_name']) === false) {
$errors[] = 'Please enter your First Name with only letters!';
}
}
}
我在这里检查一切是否正常。如果不是,我会收到错误。
但如果我使用像ščćž这样的字母 - UTF-8那么我也会收到错误。那么我怎么能解决这个问题呢?我需要名字只有字母,但必须允许像ščćž这样的UTF-8字符。
答案 0 :(得分:2)
对拉丁字符使用正则表达式,更改此条件:
if (ctype_alpha($_POST['first_name']) === false)
为:
if (!preg_match('/^[\p{Latin}]+$/u', $_POST['first_name'])
或者 - 允许空格:
if (!preg_match('/^[\p{Latin}\s]+$/u', $_POST['first_name'])