網址自動加連結和ubb代碼衝突的問題,怎麼解決?

來源:互聯網
上載者:User
preg_replace("#((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)#i","\\1",$text);

上面是給一段文字裡面的網址自動加連結的,但是有的ubb代碼的連結不能自動加連結,要怎麼排除?因為ubb會自動轉換為連結。
比如這個: http://bbs.csdn.net/topics/new?forum_id=PHPBase
怎麼排除有[url]或者[img]這種標籤裡面的連結不要自動加連結?或者有沒有其它正則可以做到?
謝謝!


回複討論(解決方案)

比如這個:【ubb】http://bbs.csdn.net/topics/new?forum_id=PHPBase【/ubb】

或者說我又要對ubb代碼轉換,又要對沒有被ubb程式碼封裝起來的網址自動加上連結,怎麼做到?

試試
preg_replace("#(?

$text =<<< TXT上面是給一段文字裡面的網址自動加連結的,但是有的ubb代碼的連結不能自動加連結,要怎麼排除?因為ubb會自動轉換為連結。比如這個:http://bbs.csdn.net/topics/new?forum_id=PHPBase比如這個:【ubb】http://bbs.csdn.net/topics/new?forum_id=PHPBase【/ubb】TXT;echo preg_replace("#([^】])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)(?>=【)?#isu","$1$2",$text);
上面是給一段文字裡面的網址自動加連結的,但是有的ubb代碼的連結不能自動加連結,要怎麼排除?因為ubb會自動轉換為連結。
比如這個:http://bbs.csdn.net/topics/new?forum_id=PHPBase
比如這個:【ubb】http://bbs.csdn.net/topics/new?forum_id=PHPBase【/ubb】

試試
preg_replace("#(?
好象可以,但是不是[ubb\]標籤,上面1樓寫錯,應該是[img]和[url]這些標籤,可以把[ubb\]換成[url\],但只能排除一個標籤,怎麼寫可以排除多個?如還要排除[img\]

$text =<<< TXT上面是給一段文字裡面的網址自動加連結的,但是有的ubb代碼的連結不能自動加連結,要怎麼排除?因為ubb會自動轉換為連結。比如這個:http://bbs.csdn.net/topics/new?forum_id=PHPBase比如這個:【ubb】http://bbs.csdn.net/topics/new?forum_id=PHPBase【/ubb】TXT;echo preg_replace("#([^】])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)(?>=【)?#isu","$1$2",$text);
上面是給一段文字裡面的網址自動加連結的,但是有的ubb代碼的連結不能自動加連結,要怎麼排除?因為ubb會自動轉換為連結。
比如這個:http://bbs.csdn.net/topics/new?forum_id=PHPBase
比如這個:【ubb】http://bbs.csdn.net/topics/new?forum_id=PHPBase【/ubb】

====
這個【】號其實是[]這個號,因為個寫成[]時在這裡會自動轉成連結看不到,所以寫成【】

你自己換一下不就行了?

$text =<<< TXT上面是給一段文字裡面的網址自動加連結的,但是有的ubb代碼的連結不能自動加連結,要怎麼排除?因為ubb會自動轉換為連結。比如這個:http://bbs.csdn.net/topics/new?forum_id=PHPBase比如這個:[ubb]http://bbs.csdn.net/topics/new?forum_id=PHPBase[/ubb]TXT;echo preg_replace("#([^]])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)#isu","$1$2",$text);

你自己換一下不就行了?

$text =<<< TXT上面是給一段文字裡面的網址自動加連結的,但是有的ubb代碼的連結不能自動加連結,要怎麼排除?因為ubb會自動轉換為連結。比如這個:http://bbs.csdn.net/topics/new?forum_id=PHPBase比如這個:[ubb]http://bbs.csdn.net/topics/new?forum_id=PHPBase[/ubb]TXT;echo preg_replace("#([^]])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)#isu","$1$2",$text);


===
太謝謝了,我用你前面那個也可以
return preg_replace("#([^\]])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)(?>=\[)?#isu","$1$2",$str);

後面那個也可以,謝謝。。。。

還有一個問題,就是前面有=號的怎麼處理?就是這種格式:
[url=http://bbs.csdn.net/topics/new?forum_id=PHPBase]

謝謝,我改成這樣可以:
echo preg_replace("#([^]|=])((mms|http|https|ftp|telnet)(://)[.:@/\w\?\=\-\&\_\#\;\%\,\!\+]+)#isu","$1$2",$text);

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.