peter: abfrage ob link mit oder ohne http eingegeben wurde

guten abend,
ich lese aus einer datenbank url´s aus und gebe sie auch aus. das funktioniert auch. jedoch hab ich da ein kleines problem. bei manchen url´s steht vor ein http und bei manchen nicht.
ich würde jetzt gerne abfragen, ob das http vorhanden ist und wenn nicht soll er es davorsetzen.
meine kenntnisse sind eher begrenzt muss ich schonmal dazusagen.
mit diesem projket versuche ich gerde mir ein paar sachen beizubringen.
viele grüße
peter

  1. Hi,

    ich würde jetzt gerne abfragen, ob das http vorhanden ist und wenn nicht soll er es davorsetzen.
    meine kenntnisse sind eher begrenzt muss ich schonmal dazusagen.

    Dann erweitere sie hier: http://www.php.net/manual/en/ref.strings.php

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hallo,

      Dann erweitere sie hier: http://www.php.net/manual/en/ref.strings.php

      Und da konkret http://www.php.net/manual/en/function.substr.php

      Mit Hilfe dessen kannst du den Anfang des Strings mit "http://" bzw. "https://" vergleichen und falls es fehlt einfach davor dazulegen.

      Jeena

      1. also ich verstehe es noch cniht so ganz. er gibt mir nicht die ersten zeichen aus.
        ich dachte jetzt, dass iche ine if abfrage machen kann. also sind die ersten zeichen http:// dann nicht hinzufügen sonst hinzufühgen.
        aber das geht dann ja nicht
        grüsse peter

        1. ich komme der sache näher:

            
            
          <?php  
            $ergebnis = mysql_query($abfrage);  
            ?>  
            
            <?  
            $abfrage = "SELECT url FROM funtstuecke ORDER BY tag DESC";  
            $ergebnis = mysql_query($abfrage);  
            while($row = mysql_fetch_object($ergebnis))  
              {  
            
           $string = "$row->url;";  
           $string = substr($string, 0, 7);  
           echo $string;  
            
            
            if($string; == "http://")  
              {  
              echo "$row->url;";  
              }  
            
               else  
              {  
              echo "$string;'$row->url;'";  
              }  
            
          }  
               ?>  
            
          
          

          allerdings ist da irgendwo ein fehler drin.
          es funktioniert nicht. aber wenn ich mir den substr alleine anzeigen lasse passt es.

          1. Probiers mal so:

              
            ...  
            if($string == "http://")  
            {  
                echo "$row->url;";  
            }  
            else  
            {  
                echo "http://".$row->url;  
            }  
            ...  
            
            

            kürzer wäre das hier:

              
            ...  
            if($string != "http://") echo "http://";   // Wenn http nicht vorhanden ausgeben...  
            echo "$row->url;";                         // Der Rest der URL  
            ...  
            
            

            Gruß

            Frank

            1. vielen dank.
              es funktioniert.
              viele gruesse
              peter

            2. Falls du es noch liesst, es funktioniert zwar, schöner wäre jedoch folgendes:

                
              ...  
              if($string == "http://")  
              {  
                  echo $row->url;  
              }  
              else  
              {  
                  echo "http://".$row->url;  
              }  
              ...  
                
                
              ...  
              if($string != "http://") echo "http://";  
              echo $row->url;  
              ...  
              
              

              Die Semikolon's haben da nichts zu suchen und die Anführungszeichen gehören da auch nicht hin ;)

              Gruß

              Frank

          2. if($string; == "http://")

            --------------^

            {
                echo "$row->url;";

            wieso nicht simpel
                  echo $row->url;

            }

            [/code]

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
      2. ich hab da mal etwas versucht:

          
          
          <?php  
          if ( substr("$row->url;",0,7)=='http://')  
            {  
            echo "$row->url;";  
            }  
            else  
            {  
            echo "http://""$row->url;";  
            }  
          ?>  
          
          
        
        

        ist der ansatz richtig?

        1. Hi,

          echo "$row->url;";
              }
              else
              {
              echo "http://""$row->url;";

          ist der ansatz richtig?

          Lerne bitte, mit Zeichenketten in PHP umzugehen.

          Dazu gehört auch, Variablen nicht unsinnigerweise in solche zu packen, wenn es gar nicht notwendig ist.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. Mahlzeit peter,

    zusätzlich zu den anderen hilfreichen Hinweisen möchte ich noch gerne eine Anmerkung loswerden.

    bei manchen url´s steht vor ein http und bei manchen nicht.

    Das ist nicht korrekt. Nur bei den Zeichenketten, bei denen ein "http://" (oder "https://", "ftp://" o.ä.) davorsteht, handelt es sich um gültige URL - bei den anderen hingegen nicht ... das sind offenbar lediglich irgendwelche mehr oder weniger zufälligen Zeichenketten.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|