如何在 PHP 中檢查字串是否包含一個子字串

Minahil Noor 2023年1月30日
  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