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中的字符串可以当做数组调用