2016-09-15 32 views
0

我有兩個類型,其從數據庫中獲取字符串鏈接:Strpos總是給人真正

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

我需要的所有鏈接以http顯示://不管這麼進出口使用什麼這個簡單的代碼,以確定是否鏈接有HTTP,如果不添加它:

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

的問題是,它被添加的是http://任何鏈接,如果它有它與否沒有關係。 我試過==錯誤等。什麼都沒有有任何想法嗎?

+1

只是使用=== false而不是!== true –

+0

哇..我沒有編碼很長..我需要回到非常基礎:D。非常感謝! – DadaB

+0

@DadaB,你的代碼應該按原樣工作。你如何定義$鏈接? – Craig

回答

0

試試這個

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

在strpos文件說,返回值不總是布爾值。

「警告 此函數可能返回布爾值FALSE,但也可能返回非布爾值,其值爲FALSE。請閱讀布爾值部分了解更多信息。使用===運算符來測試返回值這個功能「。

+0

答案應該有解釋。 – 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

答案應該有解釋。 – chris85