根据值前面的标签将冒号分隔的字符串解析为变量
我们正在尝试获取字符串的某些部分。
我们有字符串:
location:32:DaD+LoC:102AD:Ammount:294
我们希望将信息放在不同的字符串中。例如 $location=32
和 $Dad+Loc=102AD
每个字符串的值各不相同,但它始终具有以下结构: location:{number}:DaD+LoC:{code}:Ammount:{number}
我们如何获取这些值?
We are trying to get certain parts of a string.
We have the string:
location:32:DaD+LoC:102AD:Ammount:294
We would like to put the information in different strings. For example $location=32
and $Dad+Loc=102AD
The values vary per string, but it will always have this construction:location:{number}:DaD+LoC:{code}:Ammount:{number}
How do we get those values?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这会产生你想要的结果,但是例如 $dad+Loc 在 PHP 中是一个无效的变量名,因此它不会按照你想要的方式工作,最好使用数组或 stdClass 对象而不是单个变量。
That would produce what you want, but for example $dad+Loc is an invalid variable name in PHP so it wont work the way you want it, better work with an array or an stdClass Object instead of single variables.
简单的快进方法:
Easy fast forward approach:
$StringArray = 爆炸 ( ":" , $string)
$StringArray = explode ( ":" , $string)
通过使用 preg_split 并将结果数组映射到关联数组。
像这样:
By using preg_split and mapping the resulting array into an associative one.
Like this:
似乎没有人能正确地做到这一点
it seems nobody can do it properly
php 函数 split 已被弃用,因此建议使用 preg_split 或explode 代替它。
在这种情况下非常有用的是函数 list():
编辑:
我的代码有一个错误:
the php function split is deprecated so instead of this it is recommended to use preg_split or explode.
very useful in this case is the function list():
EDIT:
my code has an error:
可以使用
sscanf()
直接实现解析可预测格式的字符串并将数值转换为非字符串数据类型。 演示输出:
Parsing a predictably formatted string AND casting numeric values as non-string data types can be directly achieved with
sscanf()
. DemoOutput: