2011-11-30 92 views
0

我有我的網站上提交給我的電子郵件地址的形式;電子郵件的結構如下:導出電子郵件的形式數據到數據庫

名稱:約翰·史密斯

地址1: 1國王路

地址2:國王廣場

市:倫敦

郵編: SW1

詢價型號:一般查詢

網站:http://www.stackoverflow.com

電子郵件: [email protected]

詳情: Lorem存有dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 UT enim 廣告微量veniam,QUIS nostrud實習ullamco laboris暫準UT斯達康 aliquip前EA commodo consequat。

Duis aute irure dolor in rennederit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Excepteur燒結靶occaecat cupidatat非proident,必須遵守在 過失魁正式開通了deserunt mollit阿尼姆ID EST laborum

這是怎麼到達我在我的收件箱。我有幾封電子郵件 - 我需要將這些電子郵件中的數據導出到我的數據庫中。我擁有數據庫中設置的所有字段(名稱,地址1等),所以現在我需要做的是從電子郵件中提取每段數據。

我已經設置了一個文本字段的形式 - 的想法是,我複製和電子郵件的內容粘貼到文本區域,然後提交表單。數據的處理將在PHP腳本中完成。

我竭力要弄清楚如何最好地做到這一點 - 我能有一些想法做。謝謝。

回答

1

如果電子郵件會在每次正是這樣來的,就可以嘗試兩件事情:

  1. 正則表達式。這會有點令人討厭,但它應該用足夠的血液完成工作。
  2. 盲解析。我喜歡這種方法,這是我會嘗試和描述的。

我想嘗試拆分電子郵件的身體explode("\n", $body)

現在,該數組的索引將包含您的電子郵件的一行。你可以分配一些字符來切斷每一行(去除字段名稱),並且你已經設置好了。

+0

你好,我看起來不錯。我想知道是否有任何方法可以查找數據中的字段(例如Name,Address 1,Address 2)並將它們分配給數組的特定鍵?而類似的任何字段名稱後將是關鍵的價值... – GSTAR

0

分割字符串的最佳方法是使用正則表達式

在這種情況下,使用方法:

$result = preg_split("~(\w*)?\w*\: ~", $data); 

正則表達式的說明: 的~僅僅是分隔符的開始和結束的字符串。 第一個(\w*)?部分匹配零個或多個出現的任意數量的字(字母數字和_)字符後跟一個空格。接下來的w*\:匹配一個單詞後跟一個:然後跟一個空格。

這匹配formdata的所有'標題',從而將它按需分割。另請注意,這是格式化的,使得您不符合:在http://example.com中。

+0

乾杯,我只是嘗試了這一點,但我得到了一個解析錯誤 - 任何想法爲什麼? :) – GSTAR

+0

哦,對不起。我忘了在正則表達式字符串周圍加引號。答案現在更新;)。 – Qqwy

相關問題