Board logo

主題: [求助]關於超連結代碼的判斷 [打印本頁]

發表人: ROACH    時間: 2006-3-23 08:35 PM     主題: [求助]關於超連結代碼的判斷

想問一下
最近我用JSP寫一個企業入口網站討論區



想問一下一般討論區那種判斷超連結的代碼應該怎做呢??

我寫的一個副程式

去判斷 http: 開頭 以及 空白鍵跟ENTER鍵結尾的字元
前面加上 <a href="的字元
這樣就變成完整的超連結語法


這樣判斷出來後~再把字串丟回去~

然後接著
在去判斷 [url]的字元~
也把[url]改成<a href=

結果@@這樣卻變成

<a href="<a href="

哇勒!!

想問一下!一般的討論區關於這邊是如何判斷的呢????
還是有其他作法呢??

因為又要考慮使用者沒有用[url]直接貼網址上來
又要考慮到如果使用者用[url]的話.....
發表人: Vic    時間: 2006-3-24 11:15 AM

都是通過regular expression來做的.

preg_replace是php下reg exp的功能, R大找找jsp下的相關功能.

CODE:
[Copy to clipboard]
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.

$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\-]+\.[\w\-.\~]+(?:/[^ \"\t\n\r<]*)?)#is", "\\1<a href=\"http://\\2\" target=\"_blank\"><font color=\"Blue\">\\2</font</a>", $ret);
有關bbcode那些reg. 看以下的部份

CODE:
[Copy to clipboard]
$searcharray['bbcode_regexp'] = array(
                                                                "/\[url\]\s*(www.|https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/){1}([^\[\"']+?)\s*\[\/url\]/ie",
                                "/\[url=www.([^\[\"']+?)\](.+?)\[\/url\]/is",
                                "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",
                                );
                       

$replacearray['bbcode_regexp'] = array(
                                                                "<a href=\"http://www.\\1\" target=\"_blank\"><font color=\"blue\">\\2</font></a>",
                                "<a href=\"\\1://\\2\" target=\"_blank\"><font color=\"blue\">\\3</font></a>",
                        );
bbcode的match於link match比較好.
發表人: soupjvc999    時間: 2006-4-6 01:10 AM

買本速查手冊一起沉淪吧
每個語言的 regular expression 都有小差異
又無法強記  還是靠小本的來幫助

中文
http://tlsj.tenlong.com.tw/WebMo ... 94494&sid=25094
英文
http://tlsj.tenlong.com.tw/WebMo ... 0415X&sid=17794
發表人: Vic    時間: 2006-4-6 11:21 PM

有2個regular expression的網站推薦一下

http://www.regular-expressions.info/tutorial.html
http://regexlib.com/
發表人: ROACH    時間: 2006-4-7 12:14 AM

哈!!還是不了解~算了~~

偶也是第一次看到原來有regular expression這種東西~~
稍微去網路上查一下相關的資訊~

才發現!!!!越來越亂的~唉~


找個時間來研究一下好了~
嘿嘿~
Vic熊大您來個簡易教學好了~~






歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0