【摘要】无论是刚刚接触 PHP ,还是在 PHP 开发多年的人员一定会经常遇到这么一个问题:如何判断字符串中是否包含另外一个字符串?这个问题非常常见,所有应该把它详细记录下来。本文讲讲最准确的方法:使用 strpos()/stripos() 函数来解决这一问题。
-
header('content-type:text/html;charset=utf-8');
-
$string = 'http://www.mafutian.net';
-
$find1 = 'http://';
-
$find2 = 'https://';
-
-
in_string($string,$find1);
-
echo '<br />';
-
in_string($string,$find2);
-
echo '<br />';
-
in_string2($string,$find1);
-
echo '<br />';
-
in_string2($string,$find2);
-
echo '<br />';
-
-
function in_string($string,$find)
-
{
-
if(strpos($string,$find) === false) // 不存在
-
{
-
echo $find.' 不在 '.$string.' 中';
-
}else
-
{
-
echo $find.' 在 '.$string.' 中';
-
}
-
}
-
-
// 或者使用另外一种方式
-
function in_string2($string,$find)
-
{
-
if(strpos($string,$find) !== false) // 存在
-
{
-
echo $find.' 在 '.$string.' 中';
-
}else
-
{
-
echo $find.' 不在 '.$string.' 中';
-
}
-
}
需要注意的是字符串位置起始是 0 不是 1,因此如果没有发现,则返回 false。以上使用 '!==' 和 '===' 两种方式都是可以的。使用 PHP 判断字符串中是否含有某一子字符串的正确方式应该是以上所述的方法。当然 stripos() 是一样的,区别就在于 stripos() 是不区分大小写的,而 strpos() 是区分大小写的。