Target blank funktioniert nicht

Afox

Gut bekanntes Mitglied
12. April 2012
333
4
Hallo zusammen,

folgender Code soll als php-Datei über include in einer Box eingebunden werden:

PHP:
<?php
/*
Nutzung dieses Scripts nur gestattet, wenn Kommentare (PHP und HTML) nicht gelöscht werden, oder ein Link zu folgender Adresse gesetzt wird:
URL: http://www.web-spirit.de/webdesign-tutorial/7/RSS-Feed-auslesen-mit-PHP
Beschreibung: RSS Feed auslesen mit PHP
Autor: Sebastian Gollus
Internet: http://www.web-spirit.de
Version: 1.0.200905
*/

// Funktionsaufruf z.B.: getRssfeed("http://www.web-spirit.de/web-spirit.xml","web-spirit","auto",3,3);

getRssfeed("http://www.heise.de/newsticker/heise.rdf","heise","utf-8",3,0);

function getRssfeed($rssfeed, $cssclass="", $encode="auto", $anzahl=10, $mode=0)
{
    // $encode e[".*"; "no"; "auto"]

    // $mode e[0; 1; 2; 3]:
    // 0 = nur Titel und Link der Items weden ausgegeben
    // 1 = Titel und Link zum Channel werden ausgegeben
    // 2 = Titel, Link und Beschreibung der Items werden ausgegeben
    // 3 = 1 & 2
    
    // Zugriff auf den RSS Feed
    $data = @file($rssfeed);
    $data = implode ("", $data);
    if(strpos($data,"</item>") > 0)
    {
        preg_match_all("/<item.*>(.+)<\/item>/Uism", $data, $items);
        $atom = 0;
    }
    elseif(strpos($data,"</entry>") > 0)
    {
        preg_match_all("/<entry.*>(.+)<\/entry>/Uism", $data, $items);
        $atom = 1;
    }
    
    // Encodierung
    if($encode == "auto")
    {
        preg_match("/<?xml.*encoding=\"(.+)\".*?>/Uism", $data, $encodingarray);
        $encoding = $encodingarray[1];
    }
    else
    {$encoding = $encode;}
    
    echo "<!-- RSS Feed Script von Sebastian Gollus: http://www.web-spirit.de/webdesign-tutorial/7/RSS-Feed-auslesen-mit-PHP -->\n";
    echo "<div class=\"rssfeed_".$cssclass."\">\n";
    
    // Titel und Link zum Channel 
    if($mode == 1 || $mode == 3)
    {
        if(strpos($data,"</item>") > 0)
        {
            $data = preg_replace("/<item.*>(.+)<\/item>/Uism", '', $data);
        }
        else
        {
            $data = preg_replace("/<entry.*>(.+)<\/entry>/Uism", '', $data);
        }
        preg_match("/<title.*>(.+)<\/title>/Uism", $data, $channeltitle);
        if($atom == 0)
        {
            preg_match("/<link>(.+)<\/link>/Uism", $data, $channellink);
        }
        elseif($atom == 1)
        {
            preg_match("/<link.*alternate.*text\/html.*href=[\"\'](.+)[\"\'].*\/>/Uism", $data, $channellink);
        }

        $channeltitle = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $channeltitle);
        $channellink = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $channellink);

        echo "<h1><a href=\"".$channellink[1]."\" title=\"";
        if($encode != "no")
        {echo htmlentities($channeltitle[1],ENT_QUOTES,$encoding);}
        else
        {echo $channeltitle[1];}
        echo "\">";
        if($encode != "no")
        {echo htmlentities($channeltitle[1],ENT_QUOTES,$encoding);}
        else
        {echo $channeltitle[1];}
        echo "</a></h1>\n";
    }
    
    // Titel, Link und Beschreibung der Items
    foreach ($items[1] as $item) {
        preg_match("/<title.*>(.+)<\/title>/Uism", $item, $title);
        if($atom == 0)
        {
            preg_match("/<link>(.+)<\/link>/Uism", $item, $link);
        }
        elseif($atom == 1)
        {
            preg_match("/<link.*alternate.*text\/html.*href=[\"\'](.+)[\"\'].*\/>/Uism", $item, $link);
        }
        
        if($atom == 0)
        {
            preg_match("/<description>(.*)<\/description>/Uism", $item, $description);
        }
        elseif($atom == 1)
        {
            preg_match("/<summary.*>(.*)<\/summary>/Uism", $item, $description);
        }
    
        $title = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $title);
        $description = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $description);
        $link = preg_replace('/<!\[CDATA\[(.+)\]\]>/Uism', '$1', $link);
        
        echo "<p class=\"link\">\n";
        echo "<a href=\"".$link[1]."\" title=\"";
        if($encode != "no")
        {echo htmlentities($title[1],ENT_QUOTES,$encoding);}
        else
        {echo $title[1];}
        echo "\">";
        if($encode != "no")
        {echo htmlentities($title[1],ENT_QUOTES,$encoding)."</a>\n";}
        else
        {echo $title[1]."</a>\n";}
        echo "</p>\n";
        if($mode == 2 || $mode == 3 && ($description[1]!="" && $description[1]!=" "))
        {
            echo "<p class=\"description\">\n";
            if($encode != "no")
            {echo htmlentities($description[1],ENT_QUOTES,$encoding)."\n";}
            else
            {echo $description[1];}
            echo "</p>\n";
        }
        if ($anzahl-- <= 1) break;
    }
    echo "</div>\n\n";
}

Frage: Ich möchte erreichen, dass die Links in einem neuen Tab geöffnet werden. Ein Einfügen des target="_blank" Befehls an den Stellen
echo "<h1><a href=\"".$channellink[1]."\" title=\"";
und
echo "<a href=\"".$link[1]."\" title=\"";

sorgt für eine Zerstörung des gesamten Templates.

Kann mir jemand zufällig einen Tipp geben, was ich falsch mache bzw. anders machen muss, damit es funktionert?

Danke für Eure Antworten.

Grüße,

Afox
 

casim

Sehr aktives Mitglied
26. Juni 2012
5.934
10
AW: Target blank funktioniert nicht

ich seh nix fettes, aber hast du dran gedacht, die " zu maskieren mit \"
 

Ähnliche Themen