Dopplung ausschließen / nicht anzeigen

  • Code
    foreach($matches as $var)
        {    
            echo "$url$var <a href=".$url.$var.">LINK</a><br>";
        }


    Hi,
    Bei 1 wurde die Serverhauptadresse = $url vor $var geschrieben was eine linkbare Adresse ergibt.
    Wie kann ich ausschließen das dies auch bei 2 passiert da hier eine linkbare Adresse schon vorhanden ist?


    Seitenquelltext:

    Code
    1 <a href=http://www.sigmaringen.de/k4cms/de/suche.html?PHPSESSID=0aa867333fa57875c885d22f52264c93>LINK</a>
    2 <a href=http://www.sigmaringen.dehttp://www.sigmaringen2013.de>LINK</a><br>


    1. http://www.sigmaringen.de/k4cms/de/suche.html?PHPSESSID=0aa867333fa57875c885d22f52264c93 LINK
    2. http://www.sigmaringen.dehttp://www.sigmaringen2013.de LINK


    Moni

  • Tja daran hab ich auch gedacht, doch mir fehlen die Kenntnisse für if ... in der foreach-Schleife.
    Hab mal sowas gemacht, doch die ? sind zu ersetzen.
    Moni


  • Versuchs mal mit

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">if (</span><span class="syntaxdefault">0 </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">, </span><span class="syntaxstring">"http://"</span><span class="syntaxkeyword">)) [...] </span><span class="syntaxdefault"></span>


    Mit dem strpos wird nach einem Vorkommen von "http://" in $var gesucht.
    Wenn strpos ein Vorkommen findet, gibt es die Stelle zurück, an der es gefunden wurde, daher überprüfen wir, ob 0 zurückgegeben wurde, womit wir wissen, das http:// auch in $var und am Anfang vorkommt, $var somit schon ein vollständiger Link ist und $url nicht davor geschrieben werden muss.

  • Ich hab jetzt den Code so eingebaut:




    Aber es klappt nicht wie gewünscht.


    Moni

  • Ups, versuchs mal mit 3 Gleichheitszeichen in der if-Bedingung.
    Bei 2 Gleichheitszeichen ist die Bedingung nämlich auch wahr, wenn strpos false zurückgibt, wenn es nichts gefunden hat.


    Bei einem Vergleich mit zwei Gleichheitszeichen sind für PHP 0 und false (oder 1 und true, "1" und 1, etc.), dasselbe, da der Datentyp nicht gleich sein muss. (Vergleich auf Gleichheit)
    Bei drei Gleichheitszeichen müssen dagegen auch die Datentypen identisch sein, strpos muss also wirklich die Zahl 0 und nicht false zurückgeben, damit die Bedingung wahr ist. (Vergleich auf Identität)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!