PHP字符串查找

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:15:38
有一个变量$a=“test,admin,abc”
另一个变量为$b=“test”

条件: 当$b变量里的test在$a里存在是则执行一个条件。
当test在$a变量里不存在时则执行另一个条件。

要求$b变量里的test要精确匹配$a变量里的test

变量$a里的test和admin以及abc等都是用逗号隔开的,他们都是网站的用户名
变量$b有可能是test和admin以及abc等中的一个用户名
要做的就是在变量$a里找变量$b的用户名是否存在其中存在。

现在的写法是这样的。但是非常不精确,如:$b="te"; 这样的也会执行存在。我要他100%吻哈才能执行存在 如:$b="test"; 和 $b="admin"; 这样的才能执行存在
<?php

$a="test,admin,abc";

$b="test";

$exist=preg_match("/{$b}/",$a);

if($exist)

{

echo "存在";

}else

{
echo "不存在";
}

?>

在perl兼容的正则表达式语法中 \b 代表单词边界
所以:下面应该是可以???
$a="test,admin,abc";

$b="te";

$exist=preg_match("/\b{$b}\b/",$a);

if($exist)

{

echo "存在";

}else

{
echo "不存在";
}

我一个想法

$a=“test,admin,abc”
$b=“test”

$c=explode(',',$a);

if(array_search($b,$c)!==false){
//存在
}else{
//不存在
}

用逗号分隔: 不用数组 可以这样...
<?php
$a= "test,admin,abc,aaaa,ac";
$b="n";

if(preg_match("/^$b,/",$a) or preg_match("/,$b$/",$a) or preg_match("/,$b,/",$a)){
echo "存在";
}else {
echo "不存在";
}
?>