php - 如何将 TxtNation 字符串转换为数组?
问题描述
我想将此字符串转换为数组:
id:5918351498722606 sub:001 dlvrd:001 submit date:1410311037 done date:1410311038
stat:DELIVRD err:000 text:New HTTP Test TxtN
在这种情况下,使用类似的东西explode(" ", $string)
无效。因为它可能text
很长。
解决方案
使用preg_match_all()
字符串提取段:字符串(最多空白)将允许您捕获诸如submit date:1410311037
. 唯一的问题是最后的文本可能有空格。因此,为了解决这个问题,它专门提取了结束文本。
$string = 'id:5918351498722606 sub:001 dlvrd:001 submit date:1410311037 done date:1410311038
stat:DELIVRD err:000 text:New HTTP Test TxtN';
preg_match_all("/(.*?):(.*?)\s/", $string, $matches);
$matches[2][count($matches[2])-1] = trim(strrchr($string, ":"), ":");
$out = array_combine($matches[1], $matches[2]);
print_r($out);
输出...
Array
(
[id] => 5918351498722606
[sub] => 001
[dlvrd] => 001
[submit date] => 1410311037
[done date] => 1410311038
[stat] => DELIVRD
[err] => 000
[text] => New HTTP Test TxtN
)
推荐阅读
- python - Python数据模型/内部方法
- sql - 如果基于三列的记录与最新版本的记录不匹配,是否可以在 SQL Server 中插入记录?
- java - MonetaryAmount.plus() 用于什么?要将其映射到哪个 Kotlin 运算符?
- c - 使用结构扫描和显示板球运动员输入的 AC 程序
- c - 如果一个 C 函数被调用两次,它会创建一个在函数中声明两次的变量吗?
- reactjs - 如何在 CodeSandbox React JS 中使用 BrowserRouter 和 Route?
- javascript - 是否可以在没有用户身份验证的情况下使用 navigator.getDisplayMedia?
- javascript - 为什么元素从设备移动到设备?
- selenium - 抓取Linkedin搜索结果
- c# - 是否可以在.net core Web api中调用js库