Facebook 怎麼做到標記的?

螢幕快照 2015-08-22 下午10.01.37

自從之前解析 Facebook 的 Textarea 後,就發現當你輸入「@人名」的時候,

在送出時其實會變成「@[使用者編號:1:人名]」,此時 FB 會順便記錄你「標記了誰」。


送出的基本欄位

螢幕快照 2015-08-22 下午10.10.55

基本有兩個,一個是文章內容,一個則是用來記錄你標記了誰的陣列,舉例來說:

content 欄位記載了「今天我跟 @[32:1:卡莉絲] 去吃飯欸!」

tags 欄位則記載了32」這個數字,當然如果有多個人,可以變成「32, 33, 34」這樣送出。


伺服器端怎麼處理標記?

tags 可以透過 PHP 中的 explode 功能,將「32, 33, 34」中透過「,符號將字串切成陣列

$Tags = explode(', ', '32, 33, 34');

那文章內容怎麼讓人易讀?

那你可能會想:「文章內容要怎麼辦?」,

很簡單,那就是 Regex

螢幕快照 2015-08-22 下午10.13.33

上面的 Regex 我暫時寫的,但就是這種做法,

所以你知道我們可以透過 tags 取得這個文章「有誰」接下來取得 tags 裡所有人的「名字」

然後就是將那些「標籤」透過 Regex 然後 Replace(替換)成他們的名字,大概是這樣

螢幕快照 2015-08-22 下午10.18.27

接下來就可以如期的輸出你要的內容了:

螢幕快照 2015-08-22 下午10.20.50

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s