2016-12-15 4 views
3

Ich habe ein Problem mit dem Vergleich von Namenstrings. Ich habe 3 VariablenVergleichen Sie zwei Namensstring php

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

$fullname2 = 'MÄSNAD HOSSAIN NEHITH'; 
$firstName2 = 'Mäsnad'; 
$LastName2 = 'Nehith'; 

Ich dachte strpos verwenden, um zu sehen, ob der erste Name in dem vollständigen Namen existiert, aber strpos Groß- und Kleinschreibung.

Ich habe versucht, reguläre Ausdrücke mit Pregmatch, aber ich bin mir nicht sicher, wie es funktioniert.

$pregmatch = preg_match("/$fullname/", $firstName); 
if($pregmatch){ 
    echo " it matches"; 
} 
$pregmatch2 = preg_match("/$fullname2/", $firstName2); 
if($pregmatch2){ 
    echo " it matches"; 
} 
+1

Sie können 'stripos()' für Groß- und Kleinschreibung verwenden http://php.net/manual/en/function.stripos.php – jitendrapurohit

+0

heh, gibt es eine 'stripos' für Groß- und Kleinschreibung überprüfen – Farkie

+0

@jitendrapurohit: seit den Strings kann akzentuiertes Zeichen enthalten, stattdessen sollten Sie 'mb_stripos' verwenden, andernfalls' stripos', wenn Sie nicht sehen können, dass 'ä' der Kleinbuchstabe von' Ä' ist. –

Antwort

3

sollten Sie die Groß- und Kleinschreibung Version von strpos() mit: stripos()http://php.net/manual/en/function.stripos.php

Auch, wenn Ihr Code UTF8 Zeichen hat (was hier der Fall ist), mb_stripos()http://php.net/manual/en/function.mb-stripos.php

Eine andere Art und Weise verwenden ist, um alle Ihre Zeichenfolgen in Groß- oder Kleinschreibung vor dem Vergleich zu konvertieren

Viele String-Funktionen in PHP haben einen unempfindlichen Fall gleichwertig mit nur eine zusaetzliche "i" im Namen (strstr =>stristr, str_replace =>str_ireplace ...)

+0

Ich habe das versucht, aber aus irgendeinem Grund kann es nicht mit der Nachname-Zeichenfolge übereinstimmen. –

5

Sie benötigen mb_stripos statt einfacher stripos fürverwendenZeichen wie als

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"; 
} 

Ausgabe

UTF - 8 string 
Normal String 

Demo

0

Zunächst einmal sollten Sie "" oder '' unterzeichnen verwenden, wenn eine Variable mit String-Wert zu definieren.

Dann können Sie stripos() anstelle von strpos() verwenden.