比较两个名字串php

Mas*_*hit 3 php regex preg-match

我在比较名称字符串时遇到问题.我有3个变量

$fullname  = 'MASNAD HOSSAIN NEHITH';
$firstName = 'Masnad';
$LastName  = 'Nehith';

$fullname2  = 'MÄSNAD HOSSAIN NEHITH';
$firstName2 = 'Mäsnad';
$LastName2  = 'Nehith';
Run Code Online (Sandbox Code Playgroud)

我想使用strpos以查看全名中是否存在名字,但是strpos区分大小写.

我尝试使用pregmatch的正则表达式,但我不确定它是如何工作的.

$pregmatch = preg_match("/$fullname/", $firstName);
if($pregmatch){
   echo " it matches";
 }
$pregmatch2 = preg_match("/$fullname2/", $firstName2);
if($pregmatch2){
   echo " it matches";
 }
Run Code Online (Sandbox Code Playgroud)

小智 5

对于像as这样的字符,你需要使用mb_stripos而不是简单striposUTF-8

if(mb_stripos('MÄSNAD HOSSAIN NEHITH', 'Mäsnad') !== false)
{
    echo "UTF - 8 string".PHP_EOL;
}

if(mb_stripos('MASNAD HOSSAIN NEHITH', 'Masnad') !== false)
{
    echo "Normal String";
}
Run Code Online (Sandbox Code Playgroud)

产量

UTF - 8 string
Normal String
Run Code Online (Sandbox Code Playgroud)

演示