2010-04-08 103 views
1

將class =「external」附加到發佈的鏈接而不是域的php代碼是什麼?向外部鏈接追加class =「external」

例如我的網站是www.mysite.com並在發佈一個鏈接到www.mysite.com/news和鏈接www.yoursite.com

如何設置它,以便只有非「的mysite .com「鏈接指定了類?

+0

你可以發佈你的代碼與至極顯示鏈接?另一個好的解決方案是使用JavaScript並解析dom的鏈接,檢查它們是否是你的域名,如果不添加相應的class =「external」 – 2010-04-08 13:52:00

+0

@Ivo Sabev,javascript解決方案的問題是它們可以在瀏覽器中禁用,所以風格不適用於所有情況。 – studioromeo 2010-04-08 13:58:58

+0

@Rob如果他不在乎這是最簡單的解決方案。其他的依賴於他的PHP代碼,如果我們看不到我們什麼都不能說。 – 2010-04-08 14:09:29

回答

4

另一種方法是使用CSS3選擇器,但它們不是由Internet Explorer 6(參見:http://www.webdevout.net/browser-support-css#css3selectors):支持

// external link style 
    a:link[href^="http://"] { 
     background-color: #990000; 
    } 
    // internal link style 
    a:link, a:link[href^="http://www.mydomain.com"] { 
     background-color: #009900; 
     color: #000000; 
    } 

你不會需要以編程方式更改鏈接!

<a href="somelink.htm">some link</a> 
<a href="http://www.mydomain.com/anotherlink.htm">another link</a> 

...將導致與內部鏈接樣式的鏈接。

<a href="http://www.otherdomain.com">external link</a> 

...將導致與外部鏈接樣式的鏈接。

+1

+1對於優雅和簡單 – graphicdivine 2010-04-08 14:29:38

+0

.postbitlegacy。內容a:鏈接[href =「http://「] { 背景:URL(」 圖像/ TW7S_Windows7 /外部-Links.png「)無重複向右滾動中心透明; 填充:0 13像素; } 這工作,但它仍然把它放在圖片(外部)。:( – 2010-04-08 14:30:25

1

一種方法是檢查URL的內容爲「HTTP://」(或「https://」)

事實上,還要檢查它不包含您的域名(如果你可能有完全合格的內部鏈接。)

在PHP中,使用strpos()

也可以使用相同的通用技術的客戶端走近。 (jQuery是一個明顯的選擇,因爲它涉及到添加一個類。)

0

也可以使用正則表達式來測試您的域名是否存在於url中,如果false爲外部。 PHP的功能是preg_match()