我有一个类似的文本
[name:roccos] [phone:123324324] [tags:abc def ghi] [id:value]
我如何使用php找到name、phone等的值,所以我应该有这样的变量$name = 'roccos'
$phone = '123324324'
,我可以单独为所有变量做这件事,或者有任何方法可以自动获得所有变量和值。。。
例如:在文本[abc:def] [phone:123456]
中,冒号:
之前的所有内容都将是变量名,冒号之后的值=>$abc = 'def'
$phone = '123456'
只需使用正则表达式,preg_match_all
:
$str = '[name:roccos] [phone:123324324] [tags:abc def ghi] [id:value]';
preg_match_all('/'[(.*?):(.*?)']/', $str, $matches, PREG_SET_ORDER);
$data = array();
foreach($matches as $match) {
$data[$match[1]] = $match[2];
}
这是一个演示。注意,我使用了一个数组来保存数据,而不是直接将它们分配给全局变量;如果你从任何类型的用户输入中获取这些信息,那都是危险的。如果数据是安全的,您可以使用extract
:进行扩展
extract($data);