作者lottemarines (一平)
看板RegExp
標題[問題] 類似wiki關鍵字的作法
時間Wed Jan 20 22:26:06 2010
各位前輩大家好:
小弟原本在php版問這個問題
想請教如何寫出類似wiki關鍵字的效果,舉例來說,就是使用者在留言的時候
用[]包住的文字,存入資料庫之後就會變成連結,
甚至還能分辨資料庫中是否有此資料,然後顯現出不同的顏色(此段可以先不用實做)
例如 [ptt],就會連結到
http://localhost/serch.php?text=ptt
當然,當使用者編輯留言的時候,也能恢復成 [ptt] 。
請高手賜教或者提供關鍵字、相關網址供小弟參考,感謝!!
後來 lvlightvivi 兄回我這個答案
<?php
$string = "Welcome to [ptt]";
//你要改的文章
$pattern = "/\[(\S+)\]/"; //正規表示式 請務必學一下
//上面的意思是找出 [string] 這樣的形式 用括號把裡面string抓為暫存
$replacement = "<a href='
http://localhost/serch.php?text=\${1}'>\${1}</a>";
//要代換的項目\${1}就是你抓的暫存
print preg_replace($pattern, $replacement, $string);
//印出結果
?>
不過這個答案發現有問題耶,因為假設把$str改為
$string = "兄弟象[陳致遠]沒有打[假球]";
程式會把$string變成
兄弟象
陳致遠]沒有打[假球
藍色字代表連結,他把兩個關鍵字弄成一個了,要怎麼樣做才能正常呢?!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.39.156.2
1F:→ adrianshum:search for greedy and non-greedy match 01/20 22:47
2F:推 No:加個問號用non-greedy吧 "/\[(\S+?)\]/" 01/21 00:29