使用 PHP 列表或分解函数拆分全名
Posted
技术标签:
【中文标题】使用 PHP 列表或分解函数拆分全名【英文标题】:Split a full name using PHP list or explode function 【发布时间】:2012-09-08 21:05:31 【问题描述】:我正在尝试使用简单的 html DOM 拆分我从网页中提取的名称,而 list 和 explode 函数并没有起到作用。我想做的就是取一个名字 firstname middle(optional) lastname 并将它们拆分。中间名只出现在一些名字上,如果我能处理好,那将是一个奖励。
代码如下:
<?php
$data = new simple_html_dom();
$data->load_file("http://www.ratemyprofessors.com/ShowRatings.jsp?tid=861228");
$profName= $data->find("//*[@id=profName]", 0);
$profName = strip_tags($profName);
echo "Full Name: " . $profName = trim($profName);
list($first, $last) = explode(' ', "$profName ");
echo "first name: " . $first;
echo "last name: " . $last;
?>
我的输出如下:
Full Name: Jennifer Aaker
firstname: Jennifer Aaker
lastname:
【问题讨论】:
"$profName "
是怎么回事?为什么是空间?
我打算删除它,因为我认为字符串分隔符没有正确检测到空格,所以我自己添加了一个。
【参考方案1】:
尝试:
list($first, $last) = explode(" ", $profName);
【讨论】:
效果很好。谢谢!我正在阅读浏览器上的输出并且不知道偷偷摸摸的 现在我需要处理函数来处理那个可选的中间名【参考方案2】:这里有一个简单的函数可以解决问题。
function first_last($s)
/* assume first name is followed by a whitespace character. take everything after for last. middle initial will be returned as part of last. */
$pos = strpos($s,' ');
if ($pos == FALSE) // if space is not found... call if first name
return array($s,'');
$first = substr($s, 0 , $pos);
$last = substr($s,$pos + 1);
return array($first,$last);
// test
$s2 = 'john stewart';
list($first,$last) = first_last($s2);
【讨论】:
以上是关于使用 PHP 列表或分解函数拆分全名的主要内容,如果未能解决你的问题,请参考以下文章
Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组split函数垂直拆分二维numpy数组
Python使用numpy函数hsplit水平(按列)拆分numpy数组(返回拆分后的numpy数组列表)实战:水平(按列)拆分二维numpy数组split函数水平(按列)拆分二维numpy数组
Pandas使用split函数基于指定分隔符拆分数据列的内容为列表设置参数n控制拆分的次数设置expand参数将拆分结果列表内容转化为多列dataframe并添加到原dataframe中