php字符串解析为数组的方法
这周在扫thinkphp3.13源码,主要是$this->display()方法的流程,学到一些有用的东西。
$str = "id="list" name="list" key="KEY"";
要把上述字符串变为
Array
(
[id] => list
[name] => list
[key] => KEY
)该如何施展呢?
如果放到以前,我会这么写
$str = "id="list" name="list" key="KEY"";
$arr = explode(" ", $str);
$list = array();
foreach ($arr as $value) {
$value = explode("=", $value);
$list[$value[0]] = trim($value[1], """);
}但现在又多了几种写法。
使用正则的写法
preg_replace("#(w+)="(w+)"#e", "$var["\1"]=strip_tags("\2");", $str);没错,你没看错,就一句话,搞定。要注意的是使用e参数的安全问题。
使用xml的写法
$xml = "<tpl><tag ".$str." /></tpl>"; $xml = simplexml_load_string($xml); $xml = (array)($xml->tag->attributes()); $array = array_change_key_case($xml["@attributes"]);
是不是很cool?看来,得多看看优秀框架的源码,多学习知识,扩展自己的视野,不能自己把自己给局限在一个小圈子内,否则就如同网上说的,一个月的工作经验使用了十年,到头来,还是一个月的功力。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 数组的排序
- 下一篇: php中的字符串可以当做数组调用
