Lin*_*cum 1 php arrays string explode
如果我有一串key->值对,格式如下:
MIME-Version: 1.0
From: "Tim Lincecum"
Reply-To: "Tim Lincecum"
Return-path: "Tim Lincecum"
Content-Type: text/html; charset=iso-8859-1
Subject: Giants Win World Series!
Run Code Online (Sandbox Code Playgroud)
我如何获得这样的数组arr['From'] = "Tim Lincecum",等
我知道有这个explode()功能,但我看到的唯一分隔符(冒号)位于键和值的中间,而不是每对之间.我怎么处理这个?
你总是可以使用正则表达式:)
$str = 'MIME-Version: 1.0' . "\r\n" .
'From: "Tim Lincecum"' . "\r\n" .
'Reply-To: "Tim Lincecum"' . "\r\n" .
'Return-path: "Tim Lincecum"' . "\r\n" .
'Content-Type: text/html; charset=iso-8859-1' . "\r\n" .
'Subject: Giants Win World Series!';
preg_match_all('/(.*?):\s?(.*?)(\r\n|$)/', $str, $matches);
$headers = array_combine(array_map('trim', $matches[1]), $matches[2]);
var_dump($headers);
Run Code Online (Sandbox Code Playgroud)
array(6) {
["MIME-Version"]=>
string(3) "1.0"
["From"]=>
string(14) ""Tim Lincecum""
["Reply-To"]=>
string(14) ""Tim Lincecum""
["Return-path"]=>
string(14) ""Tim Lincecum""
["Content-Type"]=>
string(29) "text/html; charset=iso-8859-1"
["Subject"]=>
string(24) "Giants Win World Series!"
}
Run Code Online (Sandbox Code Playgroud)