從 Writing a simple lexer in PHP 找到了一個很不錯的詞語分析教學,
實際上就是最近在做 Avane 正式版,然後需要分析模板標籤,
原本想說單純的 RegEx 就足夠了,但是看看之前寫的非正式版 Avane

好像還 .. 可以啦(?)
但是後來想說沒試過 Lexer,那就來試試看好了,畢竟現在不趕快摸,之後可沒有時間啊喂wwww
(按下閱讀更多來詳細閱讀)閱讀更多»
從 Writing a simple lexer in PHP 找到了一個很不錯的詞語分析教學,
實際上就是最近在做 Avane 正式版,然後需要分析模板標籤,
原本想說單純的 RegEx 就足夠了,但是看看之前寫的非正式版 Avane

好像還 .. 可以啦(?)
但是後來想說沒試過 Lexer,那就來試試看好了,畢竟現在不趕快摸,之後可沒有時間啊喂wwww
(按下閱讀更多來詳細閱讀)閱讀更多»
自從之前解析 Facebook 的 Textarea 後,就發現當你輸入「@人名」的時候,
在送出時其實會變成「@[使用者編號:1:人名]」,此時 FB 會順便記錄你「標記了誰」。
基本有兩個,一個是文章內容,一個則是用來記錄你標記了誰的陣列,舉例來說:
content 欄位記載了「今天我跟 @[32:1:卡莉絲] 去吃飯欸!」
tags 欄位則記載了「32」這個數字,當然如果有多個人,可以變成「32, 33, 34」這樣送出。
tags 可以透過 PHP 中的 explode 功能,將「32, 33, 34」中透過「,」符號將字串切成陣列:
$Tags = explode(', ', '32, 33, 34');
那你可能會想:「文章內容要怎麼辦?」,
很簡單,那就是 Regex。
上面的 Regex 我暫時寫的,但就是這種做法,
所以你知道我們可以透過 tags 取得這個文章「有誰」,接下來取得 tags 裡所有人的「名字」,
然後就是將那些「標籤」透過 Regex 然後 Replace(替換)成他們的名字,大概是這樣
接下來就可以如期的輸出你要的內容了: