Pogledajte određenu poruku
Staro 22. 10. 2009.   #1
Nemanja Avramović
emperor Selassie
Grand Master
 
Avatar Nemanja Avramović
 
Datum učlanjenja: 20.10.2006
Lokacija: Mladenovac
Poruke: 754
Hvala: 361
576 "Hvala" u 88 poruka
Nemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoro
Pošaljite ICQ poruku za Nemanja Avramović Pošaljite poruku preko MSN za Nemanja Avramović Pošaljite poruku preko Yahoo za Nemanja Avramović
Default Dodavanje rel="nofollow" linkovima

Imam html koji dolazi od korisnika (komentari) i trebalo bi da se doda rel="nofollow" svim linkovima koji se nađu u tom HTML-u. Našao sam ovo:

PHP kôd:
function addNoFollow($html)
{
    
$str stripslashes($html);
    
$preg "/<[\s]*a[\s]*href=[\s]*[\"\']?([\w.-]*)[\"\']?[^>]*>(.*?)<\/a>/i";
    
preg_match_all($preg$str$match);
    foreach (
$match[1] as $key=>$val) {
        
$pattern[] = '/'.preg_quote($match[0][$key],'/').'/';
        
$replace[] = "<a href='$val' rel='nofollow'>{$match[2][$key]}</a>";
    }
    return 
preg_replace($pattern$replace$str);

I to dodaje linkovima rel="nofollow", ali mi zezne URL-ove u linkovima, odnosno ostavi samo "http" u href atributu. Pretpostavljam da je loš regex pa ako neko može da baci pogled, bio bih mu zahvalan.

Radio sam print_r($match); posle preg_match_all(), i uopšte ne match-uje URL sa ovakvim regex-om.
__________________
Moj portfolio sajtić | wat?

Poslednja izmena od Nemanja Avramović : 22. 10. 2009. u 20:50.
Nemanja Avramović je offline   Odgovorite uz citat