我正在使用email2http发布到我的状态文件中!
当我收到邮件并将其发布到我的状态文件时,我将提取一些数据并将其分配给某些值
我的意思是,我做到了!
<?php
$body = $_POST['body'];
function plog($errorMsg)
{
$filename = "email.txt";
if ($handle = fopen($filename, 'a+')) {
if (fwrite($handle, $errorMsg) === FALSE) {
echo "Cannot write to file ($filename)";
}
}
else {
echo "Cannot open file ($filename)";
}
fclose($handle);
}
$msgBody .= "$body\r\n";
plog($msgBody."\r\n");
?>
$_POST['body']
包含从邮件发送的文本
让我们说所有的邮件都是这样的:
5美元的金额已存入您的帐户。 备注:购物车付款。兑换ID:1317。日期:23:07 25.07.13。批次:28808853。
所以我想得到变量:
$大写金额= 5;
$ ID = 1317;
$ date = 23:07 25.07.13;
$批次= 28808853;
答案 0 :(得分:0)
如果邮件总是一样的话,我认为您可以尝试使用explode提取数据。
例如:
$var = explode('amount of ', $_POST['body']);
$var2 = explode('USD', $var[1]);
$amount = $var2[0];
答案 1 :(得分:0)
如果$ body变量总是具有该结构,则可以使用正则表达式执行此操作:
我建议删除\ r \ n。
$body=str_replace(array("\r", "\n"), "", $body);
if(preg_match("/amount\sof\s(\d+)\s.*?Exchange\sID\s?:\s?(\d+?).*?Date:\s(\d{2}:\d{2}\s\d{2}\.\d{2}\.\d{2}).*?Batch:\s(\d+?)\./"), $body, $hits){
print_r($hits);
}