/*
Name: nameparse.php
Version: 0.2a
Date: 030507
First: 030407
License: GNU General Public License v2
Bugs: If one of the words in the middle name is Ben (or St., for that matter),
or any other possible last-name prefix, the name MUST be entered in
last-name-first format. If the last-name parsing routines get ahold
of any prefix, they tie up the rest of the name up to the suffix. i.e.:
William Ben Carey would yield 'Ben Carey' as the last name, while,
Carey, William Ben would yield 'Carey' as last and 'Ben' as middle.
This is a problem inherent in the prefix-parsing routines algorithm,
and probably will not be fixed. It's not my fault that there's some
odd overlap between various languages. Just don't name your kids
'Something Ben Something', and you should be alright.
*/
function ctf_form_norm_str($string) {
return trim(strtolower(
str_replace('.','',$string)));
}
function ctf_form_in_array_norm($needle,$haystack) {
return in_array(ctf_form_norm_str($needle),$haystack);
}
function ctf_form_parse_name($fullname) {
$titles = array('dr','miss','mr','mrs','ms','judge');
$prefices = array('ben','bin','da','dal','de','del','der','de','e',
'la','le','san','st','ste','van','vel','von');
$suffices = array('esq','esquire','jr','sr','2','ii','iii','iv');
$pieces = explode(',',preg_replace('/\s+/',' ',trim($fullname)));
$n_pieces = count($pieces);
$out = array();
switch($n_pieces) {
case 1: // array(title first middles last suffix)
$subp = explode(' ',trim($pieces[0]));
$n_subp = count($subp);
for($i = 0; $i < $n_subp; $i++) {
$curr = trim(@$subp[$i]);
$next = trim(@$subp[$i+1]);
if($i == 0 && ctf_form_in_array_norm($curr,$titles)) {
$out['title'] = $curr;
continue;
}
if(!isset($out['firstName'])) {
$out['firstName'] = $curr;
continue;
}
if($i == $n_subp-2 && $next && ctf_form_in_array_norm($next,$suffices)) {
if(isset($out['lastName'])) {
$out['lastName'] .= " $curr";
}
else {
$out['lastName'] = $curr;
}
$out['suffix'] = $next;
break;
}
if($i == $n_subp-1) {
if(isset($out['lastName'])) {
$out['lastName'] .= " $curr";
}
else {
$out['lastName'] = $curr;
}
continue;
}
if(ctf_form_in_array_norm($curr,$prefices)) {
if($out['lastName']) {
$out['lastName'] .= " $curr";
}
else {
$out['lastName'] = $curr;
}
continue;
}
if($next == 'y' || $next == 'Y') {
if($out['lastName']) {
$out['lastName'] .= " $curr";
}
else {
$out['lastName'] = $curr;
}
continue;
}
if(isset($out['lastName'])) {
$out['lastName'] .= " $curr";
continue;
}
if(isset($out['middleName'])) {
$out['middleName'] .= " $curr";
}
else {
$out['middleName'] = $curr;
}
}
break;
case 2:
switch(ctf_form_in_array_norm($pieces[1],$suffices)) {
case TRUE: // array(title first middles last,suffix)
$subp = explode(' ',trim($pieces[0]));
$n_subp = count($subp);
for($i = 0; $i < $n_subp; $i++) {
$curr = trim($subp[$i]);
$next = trim($subp[$i+1]);
if($i == 0 && ctf_form_in_array_norm($curr,$titles)) {
$out['title'] = $curr;
continue;
}
if(!isset($out['firstName'])) {
$out['firstName'] = $curr;
continue;
}
if($i == $n_subp-1) {
if(isset($out['lastName'])) {
$out['lastName'] .= " $curr";
}
else {
$out['lastName'] = $curr;
}
continue;
}
if(ctf_form_in_array_norm($curr,$prefices)) {
if(isset($out['lastName'])) {
$out['lastName'] .= " $curr";
}
else {
$out['lastName'] = $curr;
}
continue;
}
if($next == 'y' || $next == 'Y') {
if(isset($out['lastName'])) {
$out['lastName'] .= " $curr";
}
else {
$out['lastName'] = $curr;
}
continue;
}
if(isset($out['lastName'])) {
$out['lastName'] .= " $curr";
continue;
}
if(isset($out['middleName'])) {
$out['middleName'] .= " $curr";
}
else {
$out['middleName'] = $curr;
}
}
$out['suffix'] = trim($pieces[1]);
break;
case FALSE: // array(last,title first middles suffix)
$subp = explode(' ',trim($pieces[1]));
$n_subp = count($subp);
for($i = 0; $i < $n_subp; $i++) {
$curr = trim($subp[$i]);
$next = trim($subp[$i+1]);
if($i == 0 && ctf_form_in_array_norm($curr,$titles)) {
$out['title'] = $curr;
continue;
}
if(!isset($out['firstName'])) {
$out['firstName'] = $curr;
continue;
}
if($i == $n_subp-2 && $next &&
ctf_form_in_array_norm($next,$suffices)) {
if(isset($out['middleName'])) {
$out['middleName'] .= " $curr";
}
else {
$out['middleName'] = $curr;
}
$out['suffix'] = $next;
break;
}
if($i == $n_subp-1 && ctf_form_in_array_norm($curr,$suffices)) {
$out['suffix'] = $curr;
continue;
}
if(isset($out['middleName'])) {
$out['middleName'] .= " $curr";
}
else {
$out['middleName'] = $curr;
}
}
$out['lastName'] = $pieces[0];
break;
}
unset($pieces);
break;
case 3: // array(last,title first middles,suffix)
$subp = explode(' ',trim($pieces[1]));
$n_subp = count($subp);
for($i = 0; $i < $n_subp; $i++) {
$curr = trim($subp[$i]);
$next = trim($subp[$i+1]);
if($i == 0 && ctf_form_in_array_norm($curr,$titles)) {
$out['title'] = $curr;
continue;
}
if(!isset($out['firstName'])) {
$out['firstName'] = $curr;
continue;
}
if(isset($out['middleName'])) {
$out['middleName'] .= " $curr";
}
else {
$out['middleName'] = $curr;
}
}
$out['lastName'] = trim($pieces[0]);
$out['suffix'] = trim($pieces[2]);
break;
default: // unparseable
unset($pieces);
break;
}
return $out;
}
DÜZTEL | Referanslarımız





Sevdiklerinizi ve Sizi Güvende Tutuyoruz..
REFERANSLARIMIZ
– ABANT İZZET BAYSAL ÜNİVERSİTESİ REKTÖRLÜĞÜ
– AĞIR HADDECİLİK A.Ş.
– AKABE TESİSLERİ
– AKÇAKOCA ORMAN İŞLETME MÜDÜRLÜĞÜ
– AKÇAKOCA TPO TESİSLERİ
– AKTAŞ BETON KARO YAPI MALZEMELERİ (BOLU)
– ALADAĞ ORMAN İŞLETME MÜDÜRLÜĞÜ(BOLU)
– ALANKAYA MÜHENDİSLİK(İSTANBUL)
– ARSEL İNŞAAT (BOLU)
– AYCAN ENERJİ ÜRETİM TİC. Ve SAN.A.Ş.(DÜZCE)
– AYDIN İNŞAAT
– BALABAN MÜHENDİSLİK (BOLU)
– BATI KARADENİZ ORMANCILIK ARAŞTIRMA MÜDÜRLÜĞÜ(BOLU)
– BEY PİLİÇ(BOLU)
– BEYTUR TARIM(DÜZCE)
– BİRLEŞİK AKRİLİK SAN. TİC. LTD. ŞTİ.
– BOLCA HİNDİ(BOLU)
– BOLPARSAN BRODE TRKS. METAL SAN. TİC. A.Ş.
– BOLSAN TUR A.Ş.(TERMAL OTEL BOLU)
– BOLU BELEDİYESİ
– BOLU ÇİMENTO SANAYİ A.Ş.
– BOLU DAĞI İNŞ. SAN. TİC. A.Ş. (HİGHWAY AVM)
– BOLU İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ
– BOLU İL ÖZEL İDARESİ
– BOLU KALİTE YEM A.Ş.
– BOLU TİCARET ve SANAYİ ODASI
– BOLU VALİLİĞİ
– CONFETTİ HALI SAN.A.Ş.(GÜMÜŞOVA)
– CP STANDART GIDA SAN. TİC. A.Ş. (CP TAVUKÇULUK)
– CUMAYERİ BELEDİYESİ
– CUMAYERİ KAYMAKAMLIĞI
– ÇAMLIK KALICI KONUT KOOPERATİFİ(BOLU)
– ÇİZMECİLER PETROL NAK.OTOM.TURİZİM İNŞ.LTD.ŞTİ.(BOLU)
– DEBATEKS TEKSTİL(DÜZCE)
– DELTA TOPRAK SAN.TİC.A.Ş.(DÜZCE)
– DEMİTAŞ A.Ş.
– DİVAPAN ENTEGRE AĞAÇ PANEL SAN.ve TİC.A.Ş.(DÜZCE)
– DOĞANAY GRUP LTD. ŞTİ.
– DOMİNO TEKSTİL A.Ş.
– DORUK İNŞ. MAK. SAN. TİC. ŞTİ.
– DORÜS YAPI KOOP.
– DÜZCE 1. OSB.
– DÜZCE 2. OSB
– DÜZCE ATATÜRK DEVLET HASTAHANESİ
– DÜZCE BELEDİYESİ
– DÜZCE GENÇLİK SPOR İL MÜDÜRLÜĞÜ
– DÜZCE İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ
– DÜZCE İL ÖZEL İDARESİ
– DÜZCE ÜNİVERSİTESİ REKTÖRLÜĞÜ
– ER PİLİÇ(BOLU)
– ERKA GURUP İNŞAAT-KÜLTÜR PARK EVLERİ
– ESMAK MAK. SAN. ve DIŞ TİC. LTD. ŞTİ.
– FENERBAHÇE TOPUK YAYLASI TESİSLERİ
– FÜPAŞ FİDAN ÜRT. PAZ. SAN. TİC. A.Ş.
– GÖKKUŞAĞI SİTESİ(DÜZCE)
– GÖLYAKA BELEDİYESİ
– GÜMÜŞOVA KAYMAKAMLIĞI
– HACIŞAKİR İNŞAAT
– HENDEKCİOĞLU LOJİSTİK NAKLİYAT LTD.ŞTİ.(ESKİŞEHİR)
– ISI-TAN ISITMA SOĞUTMA ve YEDEK PARÇA SAN. LTD. ŞTİ. (DÜZCE)
– İL ÇEVRE ve ORMAN MÜDÜRLÜĞÜ(DÜZCE)
– İL EMNİYET MÜDÜRLÜĞÜ(DÜZCE)
– İLLER BANKASI(KALICI KONUTLAR ANA SU DEPOSU)
– İNTAŞ MADENCİLİK SAN. TİC.A. Ş.
– İNTEK KALIP İSKELE SAN ve TİC.A. Ş.(GÜMÜŞOVA)
– KANSU BRODE SA. TİC. A.Ş.(1.O.S.B.DÜZCE)
– KARAMAN DÖKÜM SAN. TİC.LTD. ŞTİ.(DÜZCE)
– KAR-SİNEM TEKSTİL TİC.LTD. ŞTİ.(CUMAYERİ)
– KAYNAŞLI BELEDİYESİ
– KISMET HİSAR DÖKÜM SAN. LTD.ŞTİ.(1.O.S.B.DÜZCE)
– KONURALP BELEDİYESİ
– KORU OTELİ(BOLU)
– KÖROĞLU OTEL TUR. LTD. ŞTİ.
– KUZU TOPLU KONUT İNŞ. LTD.ŞTİ.(İSTANBUL)
– LALE HAZIR GİYİM PAZ. A.Ş. (1.O.S.B.DÜZCE)
– MAS-DAF MAKİNA SAN. A.Ş. (1.O.S.B.DÜZCE)
– NORM MAKİNA İNŞ. SAN. LTD.ŞTİ(ANKARA)
– NUR YOL ENERJİ ÜRETİM TİC.SAN.LTD.ŞTİ.(ANKARA)
– OKTAY ELK. Ve AYDINLATMA SAN. TİC. LTD. ŞTİ.
– OLTAN FINDIK SAN.ve TİC.LTD.ŞTİ.(DÜZCE)
– ORKA AHŞAP ÜRÜNLERİ SAN.TİC.LTD.ŞTİ.(GÜMÜŞOVA)
– ORMAN İŞLETME MÜDÜRLÜĞÜ(DÜZCE)
– OTEL DÜZCE
– OYAK İNŞAAT A.Ş.(MUNCURLU DEVLET HASTANESİ)
– ÖZEL ÖNCÜ EĞİTİM KURUMLARI(DÜZCE)
– ÖZEL YUNUSBEY KOLLEJİ(DÜZCE)
– ÖZSOY MİMARLIK (DÜZCE)
– PAKMAYA
– PULATLILAR PET. TİC. A.Ş.
– SARSILMAZ SİLAH SANAYİ(1.O.S.B.DÜZCE)
– SEDAŞ İL MÜDÜRLÜĞÜ(DÜZCE)
– SEMAK SAN.TİC.LTD.ŞTİ.(BOLU)
– SMS GIDA(DÜZCE)
– SÜPERLİT BORU SAN.A.Ş.(KAYNAŞLI)
– TAKSİM OTELCİLİK A.Ş.
– TARIM İL MÜDÜRLÜĞÜ (DÜZCE)
– TARIM KREDİ SAKARYA BÖLGE KOOP.
– TOLGA TEKSTİL SAN.TİC.A.Ş.(DÜZCE)
– TOPUZ PROJE TAAH.İNŞAAT TİC.LTD.ŞTİ.(AKÇAKOCA)
– TURSAN DİNLENME TESİSLERİ(DÜZCE)
– ULUSLU ALİMİNYUM SAN.TİC.LTD.ŞTİ.(GÜMÜŞOVA)
– YAĞMUR MOBİLYA SAN.TİC.A.Ş.(DÜZCE)
– YEYPAŞ A.Ş.(DÜZCE)
– YIĞILCA ORMAN İŞLETME MÜDÜRLÜĞÜ
– YİĞİTLER BETON
Diğer referanslarımız ve daha detaylı bilgi için bizlere 0380 524 77 16 nolu telefonldan ulaşabilirsiniz.