2016-09-15 3 views
0

Ich habe zwei Arten von Links, die Strings aus der Datenbank genommen sind:strpos gibt immer wahr

http://www.website.com/anything-else.html 
www.website.com/anything-else.html 

Ich brauche alle Links mit http angezeigt werden: // egal, was so Im diesen einfachen Code, um zu bestimmen ob Link hat es in http und wenn es nicht hinzufügen:

if (strpos($links, 'http') !== true) { 
    $linkai = 'http://'.$links; 
} 

Das Problem ist, ist es das hinzufügen http: // zu jedem Link egal ob es oder nicht. Ich habe versucht == falsch ect. Nichts funktioniert. Irgendwelche Ideen?

+1

nur verwenden === falsch statt == true –

+0

Wow .. Ich habe nicht für ziemlich lange codiert .. ich zurück zu Grundlagen erhalten muß: D. Ich danke dir sehr! – DadaB

+0

@DadaB, sollte Ihr Code so funktionieren wie er ist. Wie definierst du $ Links? – Craig

Antwort

0

diese

if (strpos($links, 'http') === false) { 
    $linkai = 'http://'.$links; 
} 

In strpos Dokumentation sagt immer versuchen nicht Rückgabewert Boolean.

"Warnung Diese Funktion kann Boolean FALSE zurückgeben, kann aber auch einen nicht-booleschen Wert zurückgeben, der FALSE ergibt. Weitere Informationen finden Sie im Abschnitt über Boolesche Werte. Verwenden Sie den Operator === zum Testen des Rückgabewerts von diese Funktion. "

+0

Antworten sollten Erklärungen haben. – chris85

0
$arrParsedUrl = parse_url($links); 
      if (!empty($arrParsedUrl['scheme'])) 
      { 
       // Contains http:// schema 
       if ($arrParsedUrl['scheme'] === "http") 
       { 

       } 
       // Contains https:// schema 
       else if ($arrParsedUrl['scheme'] === "https") 
       { 

       } 
      } 
      // Don't contains http:// or https:// 
      else 
      { 
       $links = 'http://'.$links; 
      } 
      echo $links; 
+0

Antworten sollten Erklärungen haben. – chris85