PHP stristr 函式基本語法
string stristr ( string $haystack , $needle , bool $before_needle )
stristr 函式的第一個參數 $haystack 為將被查詢的原始字串,第二個參數 $needle 即為自定的關鍵字符,stristr 函式會自動判斷 $haystack 字串中是否有 $needle 字符,如果有的話,就返回包含 $needle 字符以及之後的其他字串,此兩個參數都是必填項目,如果 stristr 沒有在原始字串中發現任何關鍵字符的存在,則反回 false。最後一個參數是 PHP 5.3.0 後新增的參數,選填項目,預設為 false,如果設定為 true,則 stristr 函式在原始字串中找到關鍵字符,將返回該字符之前的字串,且不包含關鍵字符。
PS.$needle參數使用數字也可以,stristr 函式會將其轉換為相對應的十進位 ASCII 字符。
PHP stristr 函式範例一
<?php
$UserEmail = 'someone@wibibi.com';
echo stristr($UserEmail, 'E');
echo stristr($UserEmail,'E',true);
?>
以上範例輸出結果$UserEmail = 'someone@wibibi.com';
echo stristr($UserEmail, 'E');
echo stristr($UserEmail,'E',true);
?>
eone@wibibi.com
som
從這個範例可以看到 stristr 不分英文字母大小寫,將關鍵字符比對出來,第二個輸出採用第三個參數,必須在 PHP5.3.0 或以上的版本才會有效果,這個範例可以比對:PHP strstr 函式。som
PHP stristr 函式範例二
<?php
$UserEmail = 'someone@wibibi.com';
echo stristr($UserEmail, 101).<br>;
echo stristr($UserEmail, 69);
?>
以上範例輸出結果$UserEmail = 'someone@wibibi.com';
echo stristr($UserEmail, 101).<br>;
echo stristr($UserEmail, 69);
?>
eone@wibibi.com
eone@wibibi.com
範例二中,我們將第二個參數使用了數字「101」與「69」,其中「101」轉換為 ASCII 十進位英文字母為 e,而「69」轉換結果為 E,接著透過 stristr 函式去做檢查,都可以順利的輸出結果。eone@wibibi.com
PHP stristr 函式範例三
<?php
$UserEmail = 'someone@wibibi.com';
if(stristr($UserEmail, 'z')===FALSE){
echo '英文字母 z 不在原始字串中';
}
?>
以上範例輸出結果$UserEmail = 'someone@wibibi.com';
if(stristr($UserEmail, 'z')===FALSE){
echo '英文字母 z 不在原始字串中';
}
?>
英文字母 z 不在原始字串中
這個範例主要是使用了 stristr 函式的特性,當沒有在原始字串中發現關鍵字符,則反回 false,用這樣的小技巧,製作了一個判斷特定關鍵字是否存在字串中的小模組,這樣的功能也可以直接使用 PHP 內建的 strpos 函式。相關主題延伸閱讀