編輯: 對不起,我沒有很清楚我的第一篇文章。好吧,我有文本存儲在數據庫中,我喜歡處理它,並尋找到我的網站上的產品的任何鏈接,並把它們變成一個奇特的鏈接。以下是2個鏈接和我目前的經驗。第二個鏈接(Link2)按預期工作,並將值21傳遞給DetailsLink()我的問題在於Link1,它將2的值傳遞給Details()而不是21。我想完全忽略url,因爲details()會重新創建與產品評分/ cat等鏈接。它也應該在http或https鏈接上工作。preg_match ID中的URL
鏈接1:http://192.168.2.22/dev/details.php?id=21 鏈路2:$地址http://192.168.2.22/dev/details.php?id=21&module=info#Desc
$s = preg_replace("%(?<![=\]\'\"\w])https?://[^<>\s\'\",]*$ADDRESS\/details\.php\?id=([0-9]+)[^<>\s\'\",]+%ie", "detailsLink(\\1)", $s);
值192.168.2.22/dev
請不要使用電子(VAL)修改但使用'preg_replace_callback'來代替。 – ThiefMaster
請不要用正則表達式重新發明輪子。 PHP中已經有了解析URL的query-info-part的函數。參見['parse_url'](http://php.net/manual/en/function.parse-url.php)。 – hakre