我有一個Glype代理,我不想分析外部URL。網頁上的所有網址都會自動轉換爲:http://proxy.com/browse.php?u=[URL HERE]。例如:如果我訪問海盜灣在我代理的話,我想不解析以下網址:Preg-replace - 替換除域和其子域以外的所有URL
ByteLove.com (Not to: http://proxy.com/browse.php?u=http://bytelove.com&b=0)
BayFiles.com (Not to: http://proxy.com/browse.php?u=http://bayfiles.com&b=0)
BayIMG.com (Not to: http://proxy.com/browse.php?u=http://bayimg.com&b=0)
PasteBay.com (Not to: http://proxy.com/browse.php?u=http://pastebay.com&b=0)
Ipredator.com (Not to: http://proxy.com/browse.php?u=https://ipredator.se&b=0)
etc.
我當然想保持內部URL,因此:
thepiratebay.se/browse (To: http://proxy.com/browse.php?u=http://thepiratebay.se/browse&b=0)
thepiratebay.se/top (To: http://proxy.com/browse.php?u=http://thepiratebay.se/top&b=0)
thepiratebay.se/recent (To: http://proxy.com/browse.php?u=http://thepiratebay.se/recent&b=0)
etc.
有preg_replace替換除了thepiratebay.se之外的所有URL,還有子域名(如示例中所示)?另一個功能也是受歡迎的。 (如DOM文檔,QueryPath中,SUBSTR或strpos不str_replace函數,因爲那時我應該定義的所有URL)。
我找到了一些東西,但我不熟悉的preg_replace:
$exclude = '.thepiratebay.se';
$pattern = '(https?\:\/\/.*?\..*?)(?=\s|$)';
$message= preg_replace("~(($exclude)?($pattern))~i", '$2<a href="$4" target="_blank">$5</a>$6', $message);
它不工作,這是我的代碼:http://pastebin.com/6ML8q7JN URL的位於:$ document – 2012-03-03 18:03:09
我需要查看$ document變量的內容以評估鱈魚是否可以工作。 – 2012-03-03 18:11:42
它現在正在工作,但_&b = 0_在url後面。如何解決這個問題? – 2012-03-04 15:55:41