phabloraylan / human-name-parser
Parses a human name
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/phabloraylan/human-name-parser
Requires
- php: >=7.1
 
Requires (Dev)
- phpstan/phpstan-shim: ^0.11.2
 - phpunit/phpunit: 7.*
 
This package is auto-updated.
Last update: 2025-10-15 21:06:18 UTC
README
Note: The 1.0 release requires PHP > 7.1.
Description
Fork from HumanNameParser.php origninally by Jason Priem jason@jasonpriem.com and @davidgorges. Takes human names of arbitrary complexity and various wacky formats like:
- J. Walter Weatherman
 - de la Cruz, Ana M.
 - James C. ('Jimmy') O'Dell, Jr.
 - Dr. James C. ('Jimmy') O'Dell, Jr.
 
and parses out the:
- leading initial (Like "J." in "J. Walter Weatherman")
 - first name (or first initial in a name like 'R. Crumb')
 - nicknames (like "Jimmy" in "James C. ('Jimmy') O'Dell, Jr.")
 - middle names
 - last name (including compound ones like "van der Sar' and "Ortega y Gasset"), and
 - suffix (like 'Jr.', 'III')
 - title (like 'Dr.', 'Prof') new
 
How to use
Composer
composer require phabloraylan/human-name-parser
Example
use HumanNameParser\Parser; try { $nameparser = new Parser(); $name = $nameparser->parse("Alfonso Ribeiro"); echo "Hello " . $name->getFirstName(); echo "Hello " . $name->getLeadingInitial(); echo "Hello " . $name->getFirstName(); echo "Hello " . $name->getNickNames(); echo "Hello " . $name->getMiddleName(); echo "Hello " . $name->getLastName(); echo "Hello " . $name->getSuffix(); } catch(HumanNameParser\Exception\FirstNameNotFoundException $e) { // catch body } catch(HumanNameParser\Exception\LastNameNotFoundException $e) { // catch body }
Tests
composer test