檢查字串
檢查字串可以運用在很多場合,比如檢查帳號是否包含保留字,或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。
由於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_word為false,當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;
}
以上是簡單的範例,希望有幫到有需要的朋友。
本文是否對您有幫助?