如何在 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