Class = "Harici" append

4 Cevap php

Sınıf yayınlanan ve etki değillerdir bağlantıları = "dış" eklemek için php kodu nedir.

Örneğin benim site www.mysite.com olduğunu ve www.mysite.com / haber ve www.yoursite.com bir bağlantı için bir bağlantı sonrası

Nasıl bu kadar olmayan tek "mysite.com" bağlantıları sınıf belirttiğiniz ayarlarım?

4 Cevap

Başka bir yaklaşım (: http://www.webdevout.net/browser-support-css#css3selectors bakınız) CSS3 seçicileri kullanarak olurdu ama onlar Internet Explorer 6 tarafından desteklenmez:

    // 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;
    }

Programlı olarak bağlantıları değiştirmek için gerek olmaz!

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

... Iç bağlantı tarzı ile bir bağlantı neden olacaktır.

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

... Dış bağlantı ile bir bağlantı neden olacaktır.

Bir yolu "http://" (veya "https://") için URL içeriğini kontrol etmek

Aslında, aynı zamanda etki alanı adı içermemelidir olmadığını kontrol edin (eğer bir iç bağlantı tam nitelikli olabilir.)

PHP, kullanmak strpos()

Ayrıca aynı genel tekniği kullanarak istemci tarafında yaklaştı olabilir. (Bir sınıf ekleyerek içerdiğinden JQuery bariz bir seçenektir.)

Don't parse html with regular expressions. Really. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454

Use a DOM parser like this one: 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';
}

bitti!

Ayrıca, etki alanı adı url varsa false ise o zaman dış test için normal ifadeler kullanabilirsiniz. php için işlevi preg_match()