首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中提取数据的最佳方法

从字符串中提取数据的最佳方法
EN

Stack Overflow用户
提问于 2016-06-29 12:15:19
回答 1查看 62关注 0票数 0

我正在寻找最有效和干净的方法,从一个字符串中提取数据并将其组织成一个信息数组。我正在构建一个工具,它可以将粘贴的备忘录信息转换成更易读的格式。

目前,我们收到了这样的新员工备忘录:

姓名:约翰·史密斯 服务:信通技术 经理:约翰·特纳 职位名称:信息技术支助干事

我希望能够将所有这些信息放入从textarea POST中获取的数组中,然后以更好的格式显示在页面上,如下所示:

全名:约翰·史密斯 服务领域:信通技术 线经理:约翰·特纳 职称:资讯科技支援主任

我知道我可以使用像 but ()这样的函数,但我只是想看看是否有更好的方法来做到这一点?

我想要将所有的信息存储在一个数组中,这样一旦它被发布到服务器上,就很容易回显到我的网页上。

代码语言:javascript
复制
$Newemployee['Name'] = "John Smith";
$Newemployee['Service'] = "ICT";
$Newemployee['Manager'] = "John Turner";
$Newemployee['Post_title'] = "IT Support Officer";

如果有人有什么建议的话,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-29 12:24:38

假设您无法控制输入的格式,并且不以任何方式对输入进行消毒,我相信实现这一目标的最合适的方法是使用像您所描述的 input ()这样的函数:

代码语言:javascript
复制
$newuser = [];

$input = "NAME: JOHN SMITH

SERVICE: ICT

MANAGER: JOHN TURNER

POST TITLE: IT Support Officer";

$lines = array_filter(explode("\n", $input));

foreach ($lines as $line) {

    $parts = explode(": ", $line);
    $newuser[ucfirst(strtolower(str_replace(" ", "_", $parts[0])))] = $parts[1];

}

编辑

更改数组索引以反映所描述的格式。

至于实际值,通常最好是以相同的形式(即小写)存储所有值,并在屏幕上打印它们时相应地格式化它们。这使得您可以轻松地比较值,而不需要知道每个字符串的格式--这意味着您可以检测'ICT‘缩略词之类的东西,并让它都是大写字母,而另一个'Service’可能不是缩略语,所以您更希望它被大写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38099239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档