我遇到一个NAME字段,通常格式如下:
FirstName LastName

然而,我也有偶尔的名称是任何这些格式(带前缀或后缀):

Mr. First Last
First Last Jr.

人们认为在PHP中将其分为FirsT / LAST名称变量的安全方法是什么?我不能真正想出任何一切都会在所有时间工作的东西…

正则表达式是处理这样的事情的最佳方法.
尝试这个 – 它拉出前缀,名字,姓氏和后缀:
$array = array(
    'FirstName LastName','Mr. First Last','First Last Jr.','Shaqueal O’neal','D’angelo Hall',);

foreach ($array as $name)
{
    $results = array();
    echo $name;
    preg_match('#^(\w+\.)?\s*([\'\’\w]+)\s+([\'\’\w]+)\s*(\w+\.?)?$#',$name,$results);
print_r($results);
}

结果是这样的:

FirstName LastName
Array
(
    [0] => FirstName LastName
    [1] => 
    [2] => FirstName
    [3] => LastName
)
Mr. First Last
Array
(
    [0] => Mr. First Last
    [1] => Mr.
    [2] => First
    [3] => Last
)
First Last Jr.
Array
(
    [0] => First Last Jr.
    [1] => 
    [2] => First
    [3] => Last
    [4] => Jr.
)
shaqueal o’neal
Array
(
    [0] => shaqueal o’neal
    [1] => 
    [2] => shaqueal
    [3] => o’neal
)
d’angelo hall
Array
(
    [0] => d’angelo hall
    [1] => 
    [2] => d’angelo
    [3] => hall
)

等等…

所以在数组中$array [0]包含整个字符串. $array [2]始终是名字,$array [3]始终是名字.$array [1]是前缀,$array [4](不总是设置)是后缀.我还添加了代码来处理“和”,如Shaqueal O’neal和D’angelo Hall.

在PHP中分割名字的最佳方式的更多相关文章

  1. Swift学习笔记 -面向对象2

    本文部分内容来自《Swift疯狂讲义》

  2. Swift计算属性

  3. 在斯威夫特,什么是“进步”?

    定义的东西.>顺序:符合SequenceType协议>collection:Swiftcollectiontypes,即Array和Dictionary但是什么是“进步”?这是第四件事情,还是作者只是用文字?ETA:我看到有一个CollectionType协议,所以解释#3.第一次提到,除了for-in文档之外,我看到“进展”是在定义了步幅方法的快速框架的评论中.Returnthesequenceofvalues(start,start+stride,start+stride+stride,…

  4. swift – 后缀(来自:)和dropFirst(_ :)之间有什么区别吗?

    我突然想到在使用Swift中的子序列时,func后缀似乎与dropFirst(_:)完全相同只是重复一遍.所以:当然,对于一个长度为十的数组.我的意思是func后缀与“2”将与dropFirst(_:)与“8”相同,例如.同样upTo/through似乎与dropLast(_:)完全相同除了方便之外还有什么区别吗?(也许是在错误的条件,性能或?)我想知道,事实上,在Swift中是否只是通过调用另一个来实现?

  5. android – 确定NavigationDrawer是打开还是关闭

    有什么方法可以确定导航抽屉是打开还是关闭?

  6. 基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)

    这篇文章主要介绍了基于HTML5实现类似微信手机摇一摇功能(计算摇动次数),需要的朋友可以参考下

  7. PHP替换数组中的字符

    .我正在寻找一个用空格替换_的数组.这可能吗?

  8. php – 如何配置分页codeigniter?

    我试图用CodeIgniter进行分页,根据Codeigniter的手册应该这么简单,即使在这个例子中也是这样的第一最后在视图中我只称它为这个分页–>create_links();?>(或者当我从控制器调用它时,我通过视图发送它,但我只能得到它123>并且没有办法使它看起来像exmaple,可能听起来如此虚拟但是,任何人都可以帮助我吗?或者有类似的问题?仍然无法工作任何想法?

  9. 在php中获取给定月份和年份的开始和结束unix时间戳

    干草,我想找一个月的第一天的时间戳和一个月的最后一天.任何想法如何做到这一点?如果您有这些日期作为字符串,您可以简单地使用strtotime(),如果您只有部分信息可以使用mktime().但是,9月份只有30天;)例:

  10. 如何用PHP中的“”替换Last“s”

    我需要知道如何用“”替换最后一个“s”假设我有一个像测试人员的字符串,输出应该是测试人员.它应该只是替换最后一个“s”而不是每个“s”在一个字符串我怎么能在PHP中这样做?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部