Avatar billede jenslyn_s Nybegynder
11. januar 2007 - 19:47 Der er 1 kommentar og
1 løsning

regex - finde link-tags hvor visse ord forekommer

Jeg vil gerne tjekke en side og se om nogle links på siden indeholder "sofabord" og "nye", samt returnerer linket. Hvordan skal jeg stykke min regex sammen?


<a href="http://www.lollerskates.com/?var=11231&wr=33&sfdfsg=#45&bb=1>Mit nye sofabord</a>
Avatar billede jenslyn_s Nybegynder
11. januar 2007 - 20:17 #1
Løste det selv.

$input = @file_get_contents($val['url']) or die('Could not access file: $url');
    $regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
        echo '<h4>'.$val['match'].'</h4>';
    if(preg_match_all("/$regexp/siU", $input, $matches)) {
        foreach($matches[3] as $linkText){
            if (preg_match("/(([a-zæøåÆØÅ]+\s){0,8}".str_replace( "/", "\/", $val['match'] )."(\s[a-zæøåÆØÅ]+){0,8})/i",$linkText,$selected)){
                //print_r($selected[1]);
                $ii++;
                echo $ii.' - <a href="'.$matches[2][$i].'">'.$matches[3][$i].'</a><br>';
                //$search_text[] = str_replace($searchString, ("<b>".$searchString."</b>"), $selected[1] );
            }
            $i++;
        }
        if($ii == 0){
            echo 'A match was not found.<hr>';
        }
    }
Avatar billede jenslyn_s Nybegynder
11. januar 2007 - 20:17 #2
Tak, du er genial!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester