PHP完全匹配字符串

时间:2012-01-20 15:00:42

标签: php string match

$check = 'this is a string 111';
if ($check = 'this is a string') {
echo 'perfect match';
} else {
echo 'it did not match up';
}

但它每次都返回完美匹配而不是它不匹配...我似乎无法获得与该情况完全匹配的字符串,只有当字符串的一部分匹配时它才会起作用。

如果我尝试使用电路板代码和正则表达式模式使事情变得复杂,那就变成了一场噩梦。

if ($check = '/\[quote(.*?)\](.*?)\[\/quote\]/su') {
$spam['spam'] = true;
$spam['error'] .= 'Spam post quote.<br />';
}

因此,如果帖子只包含引号标签,它将被视为垃圾邮件并被丢弃,但我似乎无法解决它,也许我的模式是错误的。

5 个答案:

答案 0 :(得分:10)

您需要==而不仅仅是=

$check = 'this is a string 111';
if ($check == 'this is a string') {
echo 'perfect match';
} else {
echo 'it did not match up';
}

=将分配变量。

==将进行宽松的比较

===将进行严格的比较

有关详细信息,请参阅comparison operators

答案 1 :(得分:3)

对于相等比较,您需要==运算符。 =是作业。

if ($check = 'this is a string') {

应该是

if ($check == 'this is a string') {
不用担心,我们都做到了。我仍然这样做:)

答案 2 :(得分:2)

您正在使用赋值运算符=,而不是等于运算符==

您需要使用

if ($check == 'this is a string') {

答案 3 :(得分:2)

if ($check = 'this is a string')将字符串分配给始终定义的$check变量,因此在if

中返回true

应为if ($check == 'this is a string')

答案 4 :(得分:2)

==比较运算符在大多数情况下都有效,但在某些边缘情况下无法完全匹配*。

最好使用===运算符。

if ($check === 'this is a string') {

==意外工作的示例

$check = '2';
if ($check == '          2') {