如何在 PHP 中检查字符串是否包含一个子字符串
Minahil Noor
2023年1月30日
2020年11月24日
本文将介绍在 PHP 中使用 strpos()
和 preg_match()
函数检查一个字符串是否包含子字符串的不同方法。
在 PHP 中使用 strpos()
函数检查一个字符串是否包含一个子字符串
我们将使用内置函数 strpos()
来检查一个字符串是否包含子字符串。这个命令检查传递的子字符串的出现情况,正确的执行语法如下。
strpos($originalString, $checkString, $offset);
内置函数 strpos()
有三个参数,下面将讨论这些参数。
参数 | 说明 | |
---|---|---|
$originalString |
强制 | 就是我们要检查子字符串的字符串 |
$checkString |
强制 | 这就是我们要检查的 $checkString 中的字符串 |
$offset |
可选 | 这是搜索过程的起始位置,如果偏移量为负值,搜索过程将从终点开始。 |
这个函数返回子字符串相对于原始字符串的位置。下面的程序显示了我们如何使用 strpos()
函数来检查一个字符串是否包含一个子字符串。
<?php
$mystring = "This is a PHP program.";
if (strpos($mystring, "program.") !== false) {
echo("True");
}
?>
输出:
True
如果我们传递 $offset
参数,函数将从指定位置开始搜索。
<?php
$mystring = "This is a PHP program.";
if (strpos($mystring, "PHP", 13) !== false) {
echo("True");
} else {
echo("False");
}
?>
输出:
False
输出显示 False
,因为我们搜索的字符串在偏移量之前。
在 PHP 中使用 preg_match()
函数来检查一个字符串是否包含子字符串
在 PHP 中,我们还可以使用 preg_match()
函数来检查一个字符串是否包含一个特定的单词。这个函数使用正则表达式来匹配模式。使用该函数的正确语法如下。
preg_match($pattern, $inputString, $matches, $flag, $offset);
函数 preg_match()
接受五个参数。其参数的详细情况如下
参数 | 说明 | |
---|---|---|
$regexPattern |
强制 | 它是我们将在原始字符串中搜索的模式。 |
$string |
强制 | 它是我们将在原始字符串中搜索的字符串。 |
$matches |
可选 | 这个参数中存储了匹配过程的结果。 |
$flag |
可选 | 这个参数指定了标志。这个参数有两个标志:PREG_OFFSET_CAPTURE 和 PREG_UNMATCHED_AS_NULL 。 |
$offset |
可选 | 这个参数告诉我们匹配过程的开始位置。 |
我们将使用模式/{$search}/i
来检查一个特定的单词。检查一个字符串是否包含特定单词的程序如下。
<?php
$mystring = "This is a php program.";
$search = "a";
if(preg_match("/{$search}/i", $mystring)) {
echo "True"; } else {
echo("False");
}
?>
输出:
True