[問題] 自動超連結 正規表示式
假如我有一個字串
$str='
一二三四http://www.google.com
五六七八<a href="http://www.google.com ">Google</a>
';
我希望能用正規表示式將所有超連結自動加上<a>的標籤
我的寫法是
if( strpos($str, "http") === true ){
$str = eregi_replace(
'([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'\1<a href="http://\2" rel="nofollow">\2</a>', $foo
);
}
但現在遇到一個問題
假如一個字串中同時也有已經加上<a>標籤的網址
就會變成下面這樣
五六七八<a href="<a href="http://www.google.com "></a>">Google</a>
變成<a>標籤包住<a>標籤
有沒有辦法用正規表示式先判斷是否已經有<a>標籤
如果沒有再強迫加上<a>標籤呢?
感謝各位前輩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.71.47
→
08/23 05:13, , 1F
08/23 05:13, 1F
→
08/23 05:21, , 2F
08/23 05:21, 2F
→
08/23 05:21, , 3F
08/23 05:21, 3F
→
08/23 05:22, , 4F
08/23 05:22, 4F
抱歉我試了很久都試不出來@@
也google不到資料
可以請前輩再講詳細點嘛?
假如我的
$pattern='([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)';
$next='<a +href="?([^"]+)"?>(.+)</a>';
那我要怎麼寫呢?
還是說只有preg可以判斷?ereg不行呢
※ 編輯: a517981 來自: 140.117.71.47 (08/23 14:23)
推
08/23 15:36, , 5F
08/23 15:36, 5F
→
08/23 15:37, , 6F
08/23 15:37, 6F
→
08/23 15:37, , 7F
08/23 15:37, 7F
→
08/23 16:37, , 8F
08/23 16:37, 8F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
1
8