如何在 PHP 中检查字符串是否包含一个子字符串

Minahil Noor 2023年1月30日 2020年11月24日
  1. 在 PHP 中使用 strpos() 函数检查一个字符串是否包含一个子字符串
  2. 在 PHP 中使用 preg_match() 函数来检查一个字符串是否包含子字符串
如何在 PHP 中检查字符串是否包含一个子字符串

本文将介绍在 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_CAPTUREPREG_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

相关文章 - PHP String