2016-09-15 5 views
0

を与え、私はデータベースから取得した文字列であるリンクの2種類があります。Strposは常に真

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

私はhttpで表示されるすべてのリンクを必要とする://どんなにImが決定するために、この単純なコードを使用したので、何をリンクはそれでHTTPを持っており、それを追加した場合はどうか://に関係なく、それはそれを持っているかどうかを任意のリンクに:

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

問題は、それがHTTPを追加して、です。 私は==偽を試しました。何も動作しません。何か案は?

+1

だけではなく、=== falseを使う==真 –

+0

うわー..私はかなり長い間、私は非常に基本に戻って取得する必要があります。..のためにコーディングしていない!:Dを。どうもありがとうございます! – DadaB

+0

@DadaB、あなたのコードはそのまま動作するはずです。どのように$リンクを定義していますか? – Craig

答えて

0

strposのドキュメントで、この

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

を試してみては戻り値は常にブールではないと言います。

"警告 この関数は、Boolean 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