电子邮件阅读PHP
问题描述:
我需要从此电子邮件中读取字段
MOVE INFORMATION
Pickup Address: 34 Marigold Ln, Marlboro, NJ 07746
Delivery Address: 180 Prospect Park W, Apt 5, Brooklyn, NY 11215
Primary service dates:
Pack Date: N/A
Move Date: 6/6/2013
Other service dates:
Pack Date 2: N/A
Move Date2: N/A
Other Date: N/A
我的关注是:
- 通过IMAP连接
- 获取信息主体
现在我想读取指定的数据,需要将其转换为数组:
Now I want to read specified data and need to convert it into array like:
array( ' Pickup Address'=>'34 Marigold Ln, Marlboro, NJ 07746',
'Delivery Address'=>'180 Prospect Park W, Apt 5, Brooklyn, NY 11215'...)
我尝试过 preg_match ?P
但是有一些问题:
- 不接受接收地址中的空格
- 它提供
Array([0] =>地址:34 [PickupAddress] =>地址[1] =>地址[DeliveryAddress] => 34 [2] => 34)
格式。
- It is not accepting space in 'Pickup Address'
- it is providing array in
Array ( [0] => Address: 34 [PickupAddress] => Address [1] => Address [DeliveryAddress] => 34 [2] => 34 )
format.
基本上,我需要在数据库中保存这些字段, 。
Basically I need to save these fields in database and I can not use attachment here. Let me know if you have any other solution or any way to make it work
答
这样的东西吗?
$string = 'MOVE INFORMATION
Pickup Address: 34 Marigold Ln, Marlboro, NJ 07746
Delivery Address: 180 Prospect Park W, Apt 5, Brooklyn, NY 11215
Primary service dates:
Pack Date: N/A
Move Date: 6/6/2013
Other service dates:
Pack Date 2: N/A
Move Date2: N/A
Other Date: N/A';
preg_match_all('#(.*?):(.*)#m', $string, $m);
if(isset($m[1], $m[2])){
$array = array_combine($m[1], $m[2]);
print_r($array);
}
输出:
Array
(
[Pickup Address] => 34 Marigold Ln, Marlboro, NJ 07746
[Delivery Address] => 180 Prospect Park W, Apt 5, Brooklyn, NY 11215
[Primary service dates] =>
[Pack Date] => N/A
[Move Date] => 6/6/2013
[Other service dates] =>
[Pack Date 2] => N/A
[Move Date2] => N/A
[Other Date] => N/A
)