2010-07-30 265 views
2

我使用下面的代碼來檢查字符串是否是當前的會話用戶名。查看一個字符串是否包含另一個字符串

if($_SESSION['username'] == $home || $_SESSION['username'] == $away) 

我在尋找改變,看看字符串是否包含會話用戶名,不是特定的用戶名。

有沒有辦法做到這一點? 三江源

編輯:

說出字符串爲 「USERNAME1和USERNAME2」,我就 「USERNAME1」 被發現。

我也做了以下內容:

if((strpos($home, $_SESSION['username']) !== false) || (strpos($away, $_SESSION['username']) !== false)) 

,這並不出現,雖然已經奏效!

回答

7

許多方法中的一種方法是使用strpos()函數,文檔中說這是確定字符串中是否出現子字符串的最快方法。

if(strpos($_SESSION['username'],$home)) !== false) 

條碼的格式是strpos(*haystack*, *needle*)。所以,如果$_SESSION['username']用戶名1$home用戶名1和用戶名2,上述將是真實的。

如果你確實需要子串(而不是位置),strstr()是一個好方法。

+0

+1,但請的鏈接添加到PHP文檔。 – 2010-07-30 15:06:18

+0

最好添加!== FALSE,如果字符串在開頭,您的示例將失敗。 – Blizz 2010-07-30 15:07:08

+0

如果會話用戶名在位置0,這不會失敗 – 2010-07-30 15:07:30

0

這會工作

$username = 'theusername'; 

if(strpos($username,$_SESSION['username']) !== false) { 
    // contains username  
} 
相關問題