2010-07-30 209 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  
} 
相关问题