up
down
Close
架站盒子
Web Development Box
 

PHP 檢查字串中是否包含某字串

│ 1490 Views │ PHP

檢查字串

檢查字串可以運用在很多場合,比如檢查帳號是否包含保留字,或Email是否包含特定網域等,在PHP中可以使用strpos來檢查字串中是否包含某個特定字串。

strpos會返回字串中第一個出現的位置,如果找不到則返回false

範例:

$string = "Hello, Kumo!";
$substring = "Kumo";
if (strpos($string, $substring) !== false) {
echo "包含保留字";
} else {
echo "未包含保留字";
}

顯示:包含保留字

陣列的使用

假設要檢查的保留字很多,可以存成陣列,並用foreach迴圈遍歷陣列,再用strpos檢查字串中是否含有陣列中的任何一個字串。

範例:

$string = "Kumo是雲還是蜘蛛,取決於你看事情的角度";
$array = ["kumo", "雲", "蜘蛛"];
foreach ($array as $substring) {
if (strpos($string, $substring) !== false) {
echo "包含保留字:{$substring} <br>";
} else {
echo "未包含保留字:{$substring} <br>";
}
}

顯示:
未包含保留字:kumo
包含保留字:雲
包含保留字:蜘蛛

注意
由於kumo大小寫不一致,所以判斷為未包含,如果希望不分大小寫,可以使用stripos

範例:

$string = "Kumo是雲還是蜘蛛,取決於你看事情的角度";
$array = ["Kumo", "雲", "蜘蛛"];
foreach ($array as $substring) {
if (stripos($string, $substring) !== false) {
echo "包含保留字:{$substring} <br>";
} else {
echo "未包含保留字:{$substring} <br>";
}
}

顯示:
包含保留字:kumo
包含保留字:雲
包含保留字:蜘蛛

應用於switch中

可以先設置保留字的變數$reserved_wordfalse,當foreach找到保留字時則為true,並跳出迴圈,在switch中用保留字的變數$reserved_word檢查字串是否包含文字,並根據結果來執行相應的程式。

範例:

$reserved_word = false;
foreach ($array as $word) {
if (stripos($username, $word) !== false) {
$reserved_word = true;
break;
}
}

switch (true) {
case $reserved_word:
echo '字串包含保留字!';
break;
case $text == 'test':
// ……
break;
default:
       // ……
break;
}

以上是簡單的範例,希望有幫到有需要的朋友。

延伸閱讀

本文是否對您有幫助?