將class =「external」附加到發佈的鏈接而不是域的php代碼是什麼?向外部鏈接追加class =「external」
例如我的網站是www.mysite.com並在發佈一個鏈接到www.mysite.com/news和鏈接www.yoursite.com
如何設置它,以便只有非「的mysite .com「鏈接指定了類?
將class =「external」附加到發佈的鏈接而不是域的php代碼是什麼?向外部鏈接追加class =「external」
例如我的網站是www.mysite.com並在發佈一個鏈接到www.mysite.com/news和鏈接www.yoursite.com
如何設置它,以便只有非「的mysite .com「鏈接指定了類?
另一種方法是使用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對於優雅和簡單 – graphicdivine 2010-04-08 14:29:38
.postbitlegacy。內容a:鏈接[href =「http://「] { 背景:URL(」 圖像/ TW7S_Windows7 /外部-Links.png「)無重複向右滾動中心透明; 填充:0 13像素; } 這工作,但它仍然把它放在圖片(外部)。:( – 2010-04-08 14:30:25
一種方法是檢查URL的內容爲「HTTP://」(或「https://」)
事實上,還要檢查它不包含您的域名(如果你可能有完全合格的內部鏈接。)
在PHP中,使用strpos()
也可以使用相同的通用技術的客戶端走近。 (jQuery是一個明顯的選擇,因爲它涉及到添加一個類。)
+1對於jQuery,除非它是關鍵,否則就是要走。 – 2010-04-08 14:08:52
這是我目前擁有的。 $ this-> post ['message'] = str_replace(' post ['message'] = str_replace(' post ['message']); $ this-> post ['message'] = str_replace(' post ['message']); return $ this-> post ['message']; 它工作正常,但它也將「外部」類放在圖像上,這是一個禁忌。 – 2010-04-08 14:12:44
@ k3請將此代碼發佈在您的問題中,以便於他人閱讀 – studioromeo 2010-04-08 14:16:24
也可以使用正則表達式來測試您的域名是否存在於url中,如果false爲外部。 PHP的功能是preg_match()
不要使用正則表達式解析html。真。 RegEx match open tags except XHTML self-contained tags
使用DOM解析器像這樣的: http://simplehtmldom.sourceforge.net/
$html = $xxxx //load it from your db or wherever it is
$dom = new simple_html_dom();
$dom->load($html);
foreach($dom->find('a') as $a) {
$a->class = 'external';
}
完成!
你可以發佈你的代碼與至極顯示鏈接?另一個好的解決方案是使用JavaScript並解析dom的鏈接,檢查它們是否是你的域名,如果不添加相應的class =「external」 – 2010-04-08 13:52:00
@Ivo Sabev,javascript解決方案的問題是它們可以在瀏覽器中禁用,所以風格不適用於所有情況。 – studioromeo 2010-04-08 13:58:58
@Rob如果他不在乎這是最簡單的解決方案。其他的依賴於他的PHP代碼,如果我們看不到我們什麼都不能說。 – 2010-04-08 14:09:29