在程序的時(shí)候,經(jīng)常要處理字符串,最基本就是字符串的查找,可能需要檢查字符串是否包含特定的字符或子字符串,因?yàn)楸仨殞?duì)該字符串或字符執(zhí)行某些操作。一般使用下面的3個(gè)php內(nèi)置函數(shù)來(lái)檢查一個(gè)字符串是否包含特定字符。
PHP strrpos()函數(shù)
PHP strstr()函數(shù)
PHP preg_match()函數(shù)
PHP strrpos()函數(shù)
strrpos() 函數(shù)查找字符串在另一字符串中最后一次出現(xiàn)的位置。根據(jù)strrpos() 函數(shù)的特征,可以使用它來(lái)判斷一個(gè)字符串中是否包含指定字符串。
首先來(lái)看一下strrpos()函數(shù)的語(yǔ)法和參數(shù)。
語(yǔ)法:
strrpos(string,find,start)
參數(shù)詳細(xì)描述:
參數(shù) 描述
string 必需。規(guī)定被搜索的字符串。
find 必需。規(guī)定要查找的字符。
start 可選。規(guī)定在何處開(kāi)始搜索。
注意:字符串位置從 0 開(kāi)始,不是從 1 開(kāi)始。
例子:
<?php
//從提交的表單中獲取郵件信息并保存到變量$email中
$email = $_POST['email'];
//判斷提交的郵箱地址里是否包含@符號(hào)
if (strpos($email, '@') !== false) {
print '提交的郵箱地址包含@符號(hào)!';
} else {
print '提交的郵箱地址沒(méi)有包含@符號(hào)!';
}
?>
如果需要查找的字符對(duì)大小寫(xiě)不敏感,可以使用strripos()。
PHP strstr()函數(shù)
strstr() 函數(shù)搜索一個(gè)字符串在另一個(gè)字符串中的第一次出現(xiàn)。該函數(shù)返回字符串的其余部分(從匹配點(diǎn))。如果未找到所搜索的字符串,則返回 false。
語(yǔ)法
strstr(string,search,before_search)
參數(shù)描述:
參數(shù) 描述
string 必需。規(guī)定被搜索的字符串。
search
必需。規(guī)定所搜索的字符串。
如果此參數(shù)是數(shù)字,則搜索匹配此數(shù)字對(duì)應(yīng)的 ASCII 值的字符。
before_search
可選。默認(rèn)值為 "false" 的布爾值。
如果設(shè)置為 "true",它將返回 search 參數(shù)第一次出現(xiàn)之前的字符串部分。
例子:
if (false !== strstr($source_str, $substring)) {
echo '包含!';
} else {
echo '未包含!';
}
PHP preg_match()函數(shù)
最后一種方法是使用正則表達(dá)式結(jié)合PHP preg_match 函數(shù)檢查一個(gè)字符串是否包含另一個(gè)字符 。如果匹配上,那么函數(shù)將返回true,否則返回false。preg_match語(yǔ)法語(yǔ)法如下:
preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
以下是一個(gè)非常簡(jiǎn)單的匹配:
if (preg_match("/Fangwei/i", "http://www.sdlwjx666.com/")) {
echo "匹配!";
} else {
echo "未匹配!";
}
正則表達(dá)式最后的字符“i”表示匹配不區(qū)分大小寫(xiě)。
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://www.sdlwjx666.com/news/6563.html