Last active
July 5, 2016 12:55
-
-
Save thiagolcks/c25a4196063fb7aefc71 to your computer and use it in GitHub Desktop.
Class to sanitize user names
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Afonso Ariel | |
Afonso Emanuel | |
Afonso Frederico | |
Afonso Gabriel | |
Afonso Manuel | |
Alana Aline | |
Alana Andressa | |
Alana Eduarda | |
Alana Gabriela | |
Alana Iara | |
Alana Inacia | |
Alana Inara | |
Alana Lara | |
Alana Larissa | |
Alana Laura | |
Alana Lorena | |
Alana Margarida | |
Alana Maria | |
Alana Mayara | |
Alana Nayara | |
Alana Patricia | |
Alana Paula | |
Alana Pietra | |
Alana Regina | |
Alana Riana | |
Alana Sabrina | |
Alana Shirley | |
Alana Silmara | |
Alana Silvana | |
Alana Suelen | |
Alana Taísa | |
Alana Thamires | |
Alana Yara | |
Alex Arthur | |
Alex Inacio | |
Alex Itacir | |
Alex Ivan | |
Alex João | |
Alex Luis | |
Alex Manuel | |
Alex Marcelo | |
Alex Olavo | |
Alex Oliver | |
Alex Otavio | |
Alex Sander | |
Alex Sandro | |
Alex Victor | |
Alex Vilmar | |
Alex Wilson | |
Alice Mariana | |
Alice Aline | |
Alice Andressa | |
Alice Angêla | |
Alice Beatriz | |
Alice Bianca | |
Alice Camila | |
Alice Carla | |
Alice Carolina | |
Alice Cristina | |
Alice Daniela | |
Alice Diane | |
Alice Eduarda | |
Alice Elisa | |
Alice Evilyn | |
Alice Fernanda | |
Alice Helena | |
Alice Heloisa | |
Alice Inara | |
Alice Isabela | |
Alice Joana | |
Alice Letícia | |
Alice Louise | |
Alice Luiza | |
Alice Maria | |
Alice Mayara | |
Alice Rebeca | |
Alice Renata | |
Alice Sofia | |
Alice Suzana | |
Alice Thamires | |
Amélia Augusta | |
Amélia Clara | |
Amélia Eduarda | |
Amélia Fernanda | |
Amélia Geovana | |
Amélia Heloísa | |
Amélia Isabel | |
Amélia Maria | |
Amélia Patrícia | |
Amélia Renata | |
Amélia Sofia | |
Ana Alicia | |
Ana Augusta | |
Ana Beatriz | |
Ana Carla | |
Ana Carolina | |
Ana Celia | |
Ana Clara | |
Ana Cláudia | |
Ana Cristina | |
Ana Daniela | |
Ana Gabriely | |
Ana Graciela | |
Ana Helena | |
Ana Isabel | |
Ana Julia | |
Ana Júlia | |
Ana Laura | |
Ana Letícia | |
Ana Luiza | |
Ana Luísa | |
Ana Lívia | |
Ana Lúcia | |
Ana Maria | |
Ana Paula | |
Ana Rosa | |
Ana Sofia | |
Ana Sophia | |
Ana Verônica | |
Ana Vitória | |
André Alessandro | |
André Alex | |
André Alexandre | |
André Camilo | |
André Carlos | |
André Cecílio | |
André Donato | |
André Eduardo | |
André Felipe | |
André Fernando | |
André Gabriel | |
André José | |
André Luís | |
André Marcelo | |
André Marco | |
André Marcos | |
André Mario | |
André Matheus | |
André Miguel | |
André Rafael | |
André Renato | |
André Ricardo | |
André Roberto | |
André Rodrigo | |
André Rogério | |
André Ronaldo | |
André Ronan | |
André Samuel | |
André Tiago | |
André Wilson | |
Angélica Beatriz | |
Angélica Maria | |
Angélica Natália | |
Angélica Sophia | |
Antônia Andréia | |
Antônia Beatriz | |
Antônia Camila | |
Antônia Carolina | |
Antônia Clara | |
Antônia Cristina | |
Antônia Daniela | |
Antônia Eduarda | |
Antônia Eliza | |
Antônia Fernanda | |
Antônia Iara | |
Antônia Inacia | |
Antônia Isabela | |
Antônia Joana | |
Antônia Kaoana | |
Antônia Laura | |
Antônia Letícia | |
Antônia Luiza | |
Antônia Maiara | |
Antônia Maria | |
Antônia Regina | |
Antônia Renata | |
Antônia Sofia | |
Antônia Suzana | |
Antônia Tamires | |
Antônia Thamires | |
Antônio Carlos | |
Antônio Marco | |
Antônio Marcos | |
Antônio Pedro | |
Artur Alex | |
Artur Anderson | |
Artur Angelo | |
Artur Antônio | |
Artur Cristiano | |
Artur Eduardo | |
Artur Felipe | |
Artur Fernando | |
Artur Gabriel | |
Artur Giovane | |
Artur Itacir | |
Artur José | |
Artur Luis | |
Artur Manuel | |
Artur Marcelo | |
Artur Mateus | |
Artur Mauricio | |
Artur Ricardo | |
Artur Roberto | |
Artur Thiago | |
Artur Vanderlei | |
Beatriz Aline | |
Beatriz Bianca | |
Beatriz Camila | |
Beatriz Cristina | |
Beatriz Daiana | |
Beatriz Daniela | |
Beatriz Diana | |
Beatriz Eduarda | |
Beatriz Elena | |
Beatriz Fernanda | |
Beatriz Inara | |
Beatriz Isabela | |
Beatriz Larissa | |
Beatriz Letícia | |
Beatriz Lucia | |
Beatriz Luíza | |
Beatriz Maria | |
Beatriz Rafaela | |
Beatriz Regina | |
Beatriz Renata | |
Beatriz Silvana | |
Beatriz Sofia | |
Beatriz Suzana | |
Beatriz Thamires | |
Beatriz Yara | |
Berenice Alice | |
Berenice Bianca | |
Berenice Cristina | |
Berenice Fernanda | |
Berenice Isabel | |
Berenice Louise | |
Berenice Maria | |
Berenice Regina | |
Betina Augusta | |
Betina Cristina | |
Betina Lorena | |
Betina Luíza | |
Betina Vitória | |
Betânia Cristina | |
Betânia Maria | |
Betânia Soraia | |
Bianca Alicia | |
Bianca Barbara | |
Bianca Beatriz | |
Bianca Clara | |
Bianca Clarisse | |
Bianca Cristina | |
Bianca Eduarda | |
Bianca Fernanda | |
Bianca Gabriela | |
Bianca Geovana | |
Bianca Helena | |
Bianca Isabella | |
Bianca Luiza | |
Bianca Luthiele | |
Bianca Maria | |
Bianca Marina | |
Bianca Rayana | |
Bianca Regina | |
Bianca Renata | |
Bianca Sofia | |
Bianca Sophia | |
Bianca Soraia | |
Bianca Suzana | |
Bruna Adriana | |
Bruna Alicia | |
Bruna Amélia | |
Bruna Andressa | |
Bruna Beatriz | |
Bruna Camila | |
Bruna Clarisse | |
Bruna Cristiana | |
Bruna Cristina | |
Bruna Eduarda | |
Bruna Fabiola | |
Bruna Fernanda | |
Bruna Geovana | |
Bruna Jamile | |
Bruna Joana | |
Bruna Kaoana | |
Bruna Laisa | |
Bruna Larissa | |
Bruna Lohaine | |
Bruna Lucia | |
Bruna Luiza | |
Bruna Maria | |
Bruna Mariana | |
Bruna Nayara | |
Bruna Pietra | |
Bruna Renata | |
Bruna Silmara | |
Bruna Sofia | |
Bruna Solange | |
Bruna Sophia | |
Bruna Soraia | |
Bruna Suzana | |
Bruna Tamara | |
Bruna Taynara | |
Bruna Thais | |
Bruna Thaisa | |
Bruna Valéria | |
Bruna Vanessa | |
Bruna Yara | |
Bárbara Alexa | |
Bárbara Andressa | |
Bárbara Beatriz | |
Bárbara Bianca | |
Bárbara Clarisse | |
Bárbara Cristina | |
Bárbara Diana | |
Bárbara Eduarda | |
Bárbara Elisa | |
Bárbara Elizangela | |
Bárbara Fernanda | |
Bárbara Geovana | |
Bárbara Janaina | |
Bárbara Luana | |
Bárbara Maria | |
Bárbara Mariza | |
Bárbara Regina | |
Bárbara Renata | |
Bárbara Suzana | |
Bárbara Tamara | |
Bárbara Thamires | |
Bárbara Vanessa | |
Bárbara Yasmin | |
Camila Cristina | |
Camila Eduarda | |
Carlos Alexandre | |
Carlos André | |
Carlos Daniel | |
Carlos Eduardo | |
Carlos Gilberto | |
Carlos Guilherme | |
Carlos Henrique | |
Carlos José | |
Carlos Luis | |
Carlos Marcos | |
Carlos Matheus | |
Carlos Otávio | |
Carlos Paulo | |
Carlos Ricardo | |
Carmem Lúcia | |
Carolina Helena | |
Caroline Eloísa | |
Cecília Maria | |
Clara Alicia | |
Clara Cristina | |
Cristina Maria | |
Daniela Alessandra | |
Daniela Aline | |
Daniela Aléxia | |
Daniela Alícia | |
Daniela Beatriz | |
Daniela Caroline | |
Daniela Elena | |
Daniela Fernanda | |
Daniela Francieli | |
Daniela Helena | |
Daniela Kristhie | |
Daniela Louise | |
Daniela Mayara | |
Daniela Raiane | |
Daniela Raíssa | |
Daniela Rebeca | |
Daniela Sophia | |
Daniela Stephanie | |
Daniela Thainara | |
Daniela Thainá | |
Daniela Thairine | |
Daniela Thaissa | |
Daniela Valentina | |
Daniela Viviana | |
Daniela Yohana | |
David Fernando | |
David José | |
David Luís | |
David Ricardo | |
Diego Alex | |
Diego André | |
Diego Augusto | |
Diego Eduardo | |
Diego Felipe | |
Diego Fernando | |
Diego Gabriel | |
Diego Henrique | |
Diego José | |
Diego Luís | |
Diego Renato | |
Diego Ricardo | |
Diego Rodrigo | |
Diego Thiago | |
Débora Cristina | |
Débora Eduarda | |
Débora Evellyn | |
Débora Fernanda | |
Débora Júlia | |
Débora Larissa | |
Débora Letícia | |
Débora Maria | |
Débora Priscila | |
Débora Regina | |
Débora Renata | |
Débora Sophia | |
Débora Vitória | |
Débora Viviane | |
Eduardo André | |
Eduardo Antônio | |
Eduardo Daniel | |
Eduardo Danilo | |
Eduardo Felipe | |
Eduardo Fernando | |
Eduardo Gabriel | |
Eduardo Giovanni | |
Eduardo Henrique | |
Eduardo José | |
Eduardo João | |
Eduardo Matheus | |
Eduardo Rafael | |
Eduardo Renato | |
Eduardo Rodrigo | |
Enzo Alex | |
Enzo André | |
Enzo Arnaldo | |
Enzo Daniel | |
Enzo Danilo | |
Enzo Eduardo | |
Enzo Felipe | |
Enzo Felipo | |
Enzo Fernando | |
Enzo Gabriel | |
Enzo Gilberto | |
Enzo Jean | |
Enzo Joao | |
Enzo José | |
Enzo Lucas | |
Enzo Luciano | |
Enzo Luís | |
Enzo Mateus | |
Enzo Matheus | |
Enzo Omar | |
Enzo Orlando | |
Enzo Patrick | |
Enzo Renan | |
Enzo Renato | |
Enzo Ricardo | |
Enzo Rodrigo | |
Enzo Tiago | |
Enzo Victor | |
Enzo Willian | |
Fernanda Alicia | |
Fernanda Beatriz | |
Fernanda Cristina | |
Fernanda Gabriela | |
Fernanda Lohaine | |
Fernanda Maria | |
Fernanda Sofia | |
Gabriel Alex | |
Gabriel Anderson | |
Gabriel Antônio | |
Gabriel Ariel | |
Gabriel Arnaldo | |
Gabriel Eliel | |
Gabriel Elisandro | |
Gabriel Felipe | |
Gabriel Felippo | |
Gabriel Fernando | |
Gabriel Henrique | |
Gabriel José | |
Gabriel Lucas | |
Gabriel Luís | |
Gabriel Maicon | |
Gabriel Matheus | |
Gabriel Samuel | |
Gabriel Thiago | |
Gabriela Antônia | |
Gabriela Beatriz | |
Gabriela Bianca | |
Gabriela Cristina | |
Gabriela Fernanda | |
Gabriela Isabela | |
Gabriela Kaoana | |
Gabriela Lorena | |
Gabriela Luíza | |
Gabriela Maria | |
Gabriela Mayara | |
Gabriela Regina | |
Gabriela Victória | |
Glória Carla | |
Glória Clara | |
Glória Cristina | |
Glória Maria | |
Glória Regina | |
Glória Sofia | |
Heloísa Augusta | |
Heloísa Cristina | |
Heloísa Fernanda | |
Heloísa Lúcia | |
Heloísa Maria | |
Heloísa Regina | |
Heloísa Sofia | |
Heloísa Suzana | |
Heloísa Vitória | |
Hugo Adriano | |
Hugo Otávio | |
Hugo Ricardo | |
Hugo Toma | |
Inês Cristina | |
Inês Maria | |
Inês Regina | |
Isabel Cristina | |
Isabel Maria | |
Isabel Regina | |
Isabela Cristina | |
Isabela Maria | |
Isabella Fernanda | |
Isabella Sophia | |
Jonas Alexandre | |
Jonas Amilton | |
Jonas Anderson | |
Jonas André | |
Jonas Antônio | |
Jonas Eduardo | |
Jonas Fernando | |
Jonas Inacio | |
Jonas José | |
Jonas Lorenzo | |
Jonas Mauricio | |
Jonas Ricardo | |
Jonas Tiago | |
Jonas Wilson | |
José Alexandre | |
José Augusto | |
José Carlos | |
José Daniel | |
José Fabricio | |
José Felipe | |
José Fernando | |
José Gilberto | |
José Gilmar | |
José João | |
José Marcelo | |
José Marcos | |
José Matheus | |
José Osmar | |
José Ricardo | |
José Roberto | |
José Rodrigo | |
João Carlos | |
João Gabriel | |
João Guilherme | |
João Henrique | |
João José | |
João Lucas | |
João Luís | |
João Miguel | |
João Paulo | |
João Pedro | |
João Ricardo | |
João Victor | |
João Vitor | |
João Vítor | |
Julio Alex | |
Julio Antônio | |
Julio Cesar | |
Julio César | |
Julio Daniel | |
Julio Eduardo | |
Julio Otávio | |
Júlio César | |
Kamilly Vitória | |
Laura Beatriz | |
Laura Cristina | |
Laura Daniela | |
Laura Isabel | |
Laura Isabela | |
Laura Liz | |
Laura Manuela | |
Laura Maria | |
Laura Marina | |
Laura Meire | |
Laura Mel | |
Laura Pamela | |
Laura Regina | |
Laura Sofia | |
Laura Verônica | |
Laura Vitória | |
Lucas Adriano | |
Lucas Alex | |
Lucas Alexandre | |
Lucas Anderson | |
Lucas Andre | |
Lucas Donato | |
Lucas Eduardo | |
Lucas Felipe | |
Lucas Fernando | |
Lucas Gabriel | |
Lucas Gilberto | |
Lucas Henrique | |
Lucas Leandro | |
Lucas Maurício | |
Lucas Miguel | |
Lucas Pedro | |
Lucas Ronaldo | |
Lucas Tiago | |
Luis Eduardo | |
Luis Felipe | |
Luis Fernando | |
Luiz Eduardo | |
Luiz Felipe | |
Luiz Fernando | |
Luiz Guilherme | |
Luiz Gustavo | |
Luiz Henrique | |
Luiz Miguel | |
Luiz Otávio | |
Luís Antônio | |
Luís Augusto | |
Luís Carlos | |
Luís Felipe | |
Luís Gustavo | |
Luís Otávio | |
Luís Ricardo | |
Manuel Afonso | |
Manuel Daniel | |
Manuel Danilo | |
Manuel Felipe | |
Manuel Fernando | |
Manuel Geovani | |
Manuel Inácio | |
Manuel José | |
Manuel Luís | |
Manuel Mariano | |
Manuel Miguel | |
Manuel Orlando | |
Manuel Renato | |
Manuel Ricardo | |
Manuel Vitor | |
Marcos Alexandre | |
Marcos André | |
Marcos Ariel | |
Marcos Bruno | |
Marcos Camilo | |
Marcos Eduardo | |
Marcos Felipe | |
Marcos Fernando | |
Marcos Gabriel | |
Marcos José | |
Marcos Manuel | |
Marcos Otávio | |
Marcos Paulo | |
Marcos Rafael | |
Marcos Renato | |
Marcos Ricardo | |
Marcos Vinicios | |
Maria Abela | |
Maria Adriana | |
Maria Adélia | |
Maria Alice | |
Maria Altina | |
Maria Amália | |
Maria Amélia | |
Maria Ana | |
Maria Anastácia | |
Maria Andressa | |
Maria Angelina | |
Maria Angélica | |
Maria Anselma | |
Maria Antonina | |
Maria Anália | |
Maria Aparecida | |
Maria Augusta | |
Maria Aurora | |
Maria Aurélia | |
Maria Cecilia | |
Maria Cecília | |
Maria Clara | |
Maria Cristina | |
Maria Eduarda | |
Maria Emília | |
Maria Estela | |
Maria Fernanda | |
Maria Gabriela | |
Maria Gabrielly | |
Maria Helena | |
Maria Isabel | |
Maria Julia | |
Maria Júlia | |
Maria Laura | |
Maria Luiza | |
Maria Paula | |
Maria Rosa | |
Maria Sophia | |
Maria Teresa | |
Maria Vitória | |
Maria Ágata | |
Maria Ângela | |
Mariana Beatriz | |
Mariana Clara | |
Mariana Clarisse | |
Mariana Cristina | |
Mariana Eduarda | |
Mariana Eliza | |
Mariana Fernanda | |
Mariana Isabela | |
Mariana Janaina | |
Mariana Marina | |
Mariana Nayara | |
Mariana Regina | |
Mariana Renata | |
Mariana Rosa | |
Mariana Sofia | |
Mariana Suzana | |
Mariana Vanessa | |
Marisa Antônia | |
Marisa Beatriz | |
Marisa Caroline | |
Marisa Cristina | |
Marisa Daniela | |
Marisa Eduarda | |
Marisa Elisa | |
Marisa Fernanda | |
Marisa Geovana | |
Marisa Helena | |
Marisa Inara | |
Marisa Joana | |
Marisa Kaoana | |
Marisa Marcela | |
Marisa Maria | |
Marisa Renata | |
Marisa Sofia | |
Marisa Viviane | |
Matheus Alex | |
Matheus Alexandre | |
Matheus André | |
Matheus Daniel | |
Matheus David | |
Matheus Eduardo | |
Matheus Felipe | |
Matheus Fernando | |
Matheus Gabriel | |
Matheus Henrique | |
Matheus Humberto | |
Matheus Inácio | |
Matheus José | |
Matheus Luiz | |
Matheus Manuel | |
Matheus Marcos | |
Matheus Miguel | |
Matheus Nilton | |
Matheus Orlando | |
Matheus Renato | |
Matheus Ricardo | |
Matheus Rogério | |
Matheus Samuel | |
Matheus Thiago | |
Matheus Valdecir | |
Matheus Wilson | |
Mayara Andressa | |
Mayara Beatriz | |
Mayara Caroline | |
Mayara Daniela | |
Mayara Elisa | |
Mayara Fernanda | |
Mayara Geovana | |
Mayara Maria | |
Mayara Marisa | |
Mayara Renata | |
Mayara Sofia | |
Miguel Aloísio | |
Miguel Conrado | |
Miguel Elias | |
Miguel Guilherme | |
Miguel Ângelo | |
oão Alex | |
Paulo Afonso | |
Paulo Alberto | |
Paulo César | |
Paulo Henrique | |
Paulo Marcos | |
Pedro Henrique | |
Pedro Lucas | |
Pedro Paulo | |
Ricardo Henrique | |
Ricardo José | |
Ricardo Manuel | |
Rodrigo Augusto | |
Rodrigo Luís | |
Rodrigo Manuel | |
Sabrina Andressa | |
Sabrina Bianca | |
Sabrina Camila | |
Sabrina Caroline | |
Sabrina Cristina | |
Sabrina Diana | |
Sabrina Eduarda | |
Sabrina Elisa | |
Sabrina Fernanda | |
Sabrina Geovana | |
Sabrina Isabela | |
Sabrina Laisa | |
Sabrina Luisa | |
Sabrina Marcela | |
Sabrina Maria | |
Sabrina Nayara | |
Sabrina Renata | |
Sabrina Sabine | |
Sabrina Sofia | |
Sabrina Thaisa | |
Sabrina Thamires | |
Serena Alice | |
Serena Beatriz | |
Serena Bianca | |
Serena Camila | |
Serena Caroline | |
Serena Cristina | |
Serena Daiana | |
Serena Daniela | |
Serena Eduarda | |
Serena Fernanda | |
Serena Gabriela | |
Serena Geovana | |
Serena Joana | |
Serena Kaoana | |
Serena Larissa | |
Serena Luíza | |
Serena Maria | |
Serena Mayara | |
Serena Melissa | |
Serena Patricia | |
Serena Regina | |
Serena Renata | |
Serena Silvana | |
Serena Sofia | |
Serena Sophia | |
Serena Thamires | |
Serena Vanessa | |
Serena Victória | |
Serena Vitória | |
Serena Yara | |
Sofia Amélia | |
Sofia Angélica | |
Sofia Beatriz | |
Sofia Clarisse | |
Sofia Cristina | |
Sofia Helena | |
Sofia Inara | |
Sofia Isabela | |
Sofia Lorena | |
Sofia Maria | |
Sofia Mariana | |
Sofia Marina | |
Sofia Valentina | |
Sofia Vitória | |
Sofia Yara | |
Suelen Bianca | |
Suelen Caroline | |
Suelen Cristina | |
Suelen Eduarda | |
Suelen Fernanda | |
Suelen Geovana | |
Suelen Helena | |
Suelen Laisa | |
Suelen Larissa | |
Suelen Marcele | |
Suelen Maria | |
Suelen Michele | |
Suelen Regina | |
Suelen Renata | |
Suelen Sofia | |
Suelen Thaisa | |
Suelen Vanessa | |
Suelen Yara | |
Thais Alexandra | |
Thais Andressa | |
Thais Cristina | |
Thais Elaine | |
Thais Fernanda | |
Thais Helena | |
Thais Isabella | |
Thiago Henrique | |
Tiago André | |
Tiago Luís | |
Tiago Matheus | |
Valdecir José | |
Vera Lúcia | |
Victor Gabriel | |
Victor Hugo | |
Victória Beatriz | |
Victória Caterina | |
Victória Elena | |
Victória Elisabeth | |
Victória Heloísa | |
Victória Hiorrana | |
Victória Isabel | |
Victória Lorena | |
Victória Luísa | |
Vilmar Eduardo | |
Vitor Gabriel | |
Vitor Hugo | |
Vítor Gabriel | |
Vítor Hugo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Z_Name { | |
static private $compound_names = array(); | |
static public function validate( $name ) { | |
$name = self::trim( $name ); | |
return ( strlen( $name ) > 4 && strpos( $name, ' ' ) !== false ); | |
} | |
static public function trim( $name ) { | |
$name = explode( ' ', trim( $name ) ); | |
foreach ( $name as $key => $word ) { | |
$name[$key] = trim( $word ); | |
} | |
return implode( ' ', $name ); | |
} | |
static public function explode( $name ) { | |
$result = array( 'first_name' => '', 'last_name' => '' ); | |
$name = explode( ' ', $name ); | |
if ( count( $name ) < 3 ) { | |
$result['first_name'] = $name[0]; | |
$result['last_name'] = isset( $name[1] ) ? $name[1] : ''; | |
} else { | |
if ( $first_name = self::is_compound( implode( ' ', $name ) ) ) { | |
$result['first_name'] = $first_name; | |
$result['last_name'] = trim( mb_substr( implode( ' ', $name ), strlen( $first_name ), null, 'UTF-8' ) ); | |
} else { | |
$result['first_name'] = $name[0]; | |
unset( $name[0] ); | |
$result['last_name'] = implode( ' ', $name ); | |
} | |
} | |
return $result; | |
} | |
static public function is_compound( $name ) { | |
if ( count( self::$compound_names ) === 0 ) { | |
self::$compound_names = explode( "\n", file_get_contents( plugin_dir_path( __FILE__ ) . 'z-names-list.txt' ) ); | |
} | |
foreach ( self::$compound_names as $compound_name ) { | |
if ( $compound_name == substr( $name, 0, strlen( $compound_name ) ) ) { | |
return $compound_name; | |
} | |
} | |
return false; | |
} | |
static public function sanitize( $name ) { | |
if ( self::is_uppercase( $name ) || self::is_lowercase( $name ) ) { | |
$name = explode( ' ', mb_convert_case( $name, MB_CASE_TITLE, 'UTF-8' ) ); | |
foreach ( $name as $key => $word ) { | |
if ( in_array( $word, array( 'Do', 'Da', 'De', 'Del', 'La', 'Dos', 'Von' ) ) ) { | |
$name[$key] = mb_strtolower( $word, 'UTF-8' ); | |
} | |
} | |
$name = implode( ' ', $name ); | |
} | |
return $name; | |
} | |
static public function is_uppercase( $name ) { | |
$first_letter = mb_substr( $name, 0, 1, 'UTF-8' ); | |
$second_letter = mb_substr( $name, 1, 1, 'UTF-8' ); | |
return $first_letter === mb_strtoupper( $first_letter, 'UTF-8' ) && $second_letter === mb_strtoupper( $second_letter, 'UTF-8' ); | |
} | |
static public function is_lowercase( $name ) { | |
$first_letter = mb_substr( $name, 0, 1, 'UTF-8' ); | |
return $first_letter === mb_strtolower( $first_letter, 'UTF-8' ); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Library\ZName; | |
class ZName | |
{ | |
static private $compound_names = []; | |
public static function validate($name) | |
{ | |
$name = self::trim($name); | |
return (strlen($name) > 4 && strpos($name, ' ') !== false); | |
} | |
public static function trim($name) | |
{ | |
$name = explode(' ', trim($name)); | |
foreach ($name as $key => $word) { | |
$name[$key] = trim($word); | |
} | |
return implode(' ', $name); | |
} | |
public static function explode($name) | |
{ | |
$result = ['first_name' => '', 'last_name' => '']; | |
$name = explode(' ', $name); | |
if (count($name) < 3) { | |
$result['first_name'] = $name[0]; | |
$result['last_name'] = isset($name[1]) ? $name[1] : ''; | |
} else { | |
if ($first_name = self::isCompound(implode(' ', $name))) { | |
$result['first_name'] = $first_name; | |
$result['last_name'] = trim(mb_substr(implode(' ', $name), strlen($first_name), null, 'UTF-8')); | |
} else { | |
$result['first_name'] = $name[0]; | |
unset($name[0]); | |
$result['last_name'] = implode(' ', $name); | |
} | |
} | |
return $result; | |
} | |
public static function isCompound($name) | |
{ | |
if (count(self::$compound_names) === 0) { | |
self::$compound_names = explode("\n", file_get_contents(dirname(__FILE__) . 'z-names-list.txt')); | |
} | |
foreach (self::$compound_names as $compound_name) { | |
if ($compound_name == substr($name, 0, strlen($compound_name))) { | |
return $compound_name; | |
} | |
} | |
return false; | |
} | |
public static function sanitize($name) | |
{ | |
if (self::isUppercase($name) || self::isLowercase($name)) { | |
$name = explode(' ', mb_convert_case($name, MB_CASE_TITLE, 'UTF-8')); | |
foreach ($name as $key => $word) { | |
if (in_array($word, ['Do', 'Da', 'De', 'Del', 'La', 'Dos', 'Von'])) { | |
$name[$key] = mb_strtolower($word, 'UTF-8'); | |
} | |
} | |
$name = implode(' ', $name); | |
} | |
return $name; | |
} | |
public static function isUppercase($name) | |
{ | |
$first_letter = mb_substr($name, 0, 1, 'UTF-8'); | |
$second_letter = mb_substr($name, 1, 1, 'UTF-8'); | |
return $first_letter === mb_strtoupper($first_letter, 'UTF-8') && | |
$second_letter === mb_strtoupper($second_letter, 'UTF-8'); | |
} | |
public static function isLowercase($name) | |
{ | |
$first_letter = mb_substr($name, 0, 1, 'UTF-8'); | |
return $first_letter === mb_strtolower($first_letter, 'UTF-8'); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment