- 相關(guān)推薦
php中strstr查找字符串中包含某些字符的查找函數(shù)嗎
strstr()函數(shù)的作用是:返回一個字符串在另一個字符串中首次出現(xiàn)的位置到后者末尾的子字符串(大小寫敏感)。以下幾個函數(shù)均可用來判斷某字符串是否包含另外一個字符串PHP 中判斷一個字符串是否包含其它字符是很常見的操作。 雖然很簡單,但還是寫了幾個函數(shù),質(zhì)量可能不是很高,權(quán)當(dāng)鍛煉。
復(fù)制代碼 代碼如下:
<?php
/**
* 以下幾個函數(shù)均可用來判斷某字符串是否包含另外一個字符串
* PHP 中判斷一個字符串是否包含其它字符是很常見的操作。
* 雖然很簡單,但還是寫了幾個函數(shù),質(zhì)量可能不是很高,權(quán)當(dāng)鍛煉。
* 如果這幾個函數(shù)恰好能幫上你的忙,我將會很高興的。
*/
/**
* 利用一下 strpos() 函數(shù)
* @param unknown_type $haystack
* @param unknown_type $needle
*/
function isInString1($haystack, $needle) {
//防止$needle 位于開始的位置
$haystack = '-_-!' . $haystack;
return (bool)strpos($haystack, $needle);
}
/**
* 利用字符串分割
* @param unknown_type $haystack
* @param unknown_type $needle
*/
function isInString2($haystack, $needle) {
$array = explode($needle, $haystack);
return count($array) > 1;
}
/**
* 用了一下正則,這種方法十分不建議,尤其是 $needle 中包含
* 特殊字符,如 ^,$,/ 等等
* @param unknown_type $haystack
* @param unknown_type $needle
*/
function isInString3($haystack, $needle) {
$pattern = '/' . $needle . '/';
return (bool)preg_match($pattern, $haystack);
}
/**
* 利用一下 strpos() 函數(shù)
* @param unknown_type $haystack
* @param unknown_type $needle
*/
function isInString4($haystack, $needle) {
return false !== strpos($haystack, $needle);
}
//測試
$haystack = 'I am ITBDW';
$needle = 'IT';
var_dump(isInString1($haystack, $needle));
我覺得最簡單的就是這種了 strpos($a, $b) !== false 如果$a 中存在 $b,則為 true ,否則為 false。
用 !== false (或者 === false) 的原因是如果 $b 正好位于$a的開始部分,那么該函數(shù)會返回int(0),那么0是false,但$b確實位于$a中,所以要用 !== 判斷一下類型,要確保是嚴(yán)格的 false。昨天晚上去中關(guān)村圖書大廈,看到一本書中用的是 strpos === true 來判斷,這是極其不正確的。。。
出錯的書為《PHP求職寶典》107頁(2012-02-26更新)
其它的還有 PHP 原生支持的函數(shù),如 strstr(),stristr() 等,直接判斷就可以了。
定義和用法
strstr() 函數(shù)搜索一個字符串在另一個字符串中的第一次出現(xiàn)。
該函數(shù)返回字符串的其余部分(從匹配點(diǎn))。如果未找到所搜索的字符串,則返回 false。
語法
strstr(string,search)
參數(shù) 描述
string 必需。規(guī)定被搜索的字符串。
search 必需。規(guī)定所搜索的字符串。如果該參數(shù)是數(shù)字,則搜索匹配數(shù)字 ASCII 值的字符。
提示和注釋
注釋:該函數(shù)是二進(jìn)制安全的。
注釋:該函數(shù)對大小寫敏感。如需進(jìn)行大小寫不敏感的搜索,請使用 stristr()。
例子 1
復(fù)制代碼 代碼如下:
<?php
echo strstr("Hello world!","world");
?>
//輸出:world!
例子 2
在本例中,我們將搜索 "o" 的 ASCII 值所代表的字符:
復(fù)制代碼 代碼如下:
<?php
echo strstr("Hello world!",111);
?>
//輸出:o world!
例子 3
復(fù)制代碼 代碼如下:
<?php
$email = 'admin@jb51.net';
$domain = strstr($email, '@');
echo $domain; // prints @jb51.net
$user = strstr($email, '@', true); // As of PHP 5.3.0
echo $user; // prints admin
?>
復(fù)制代碼 代碼如下:
$city_str=fopen(cgi_path."/data/weather/city.dat","r");
$city_ch=fread($city_str,filesize(cgi_path."/data/weather/city.dat"));
$city_ch_arr=explode("|",$city_ch);
//如果能匹配到所在市
if(strstr($area_ga,"市")){
foreach($city_ch_arr as $city_ch_arr_item){
if(@strstr($area_ga,$city_ch_arr_item)){
echo $area_ga.'<br>';
echo $city_ch_arr_item;
$s_city=$city_ch_arr_item;
}
}
}
//如果找不到市 那么看看是不是能找到省 有時會有這樣的情況:廣東省長城寬帶 這樣的一律歸屬到該省省府
elseif(strstr($area_ga,"河北")!==false){
$s_city="石家莊";
}elseif(strstr($area_ga,"福建")!==false){
$s_city="福州";
}elseif(strstr($area_ga,"臺灣")!==false){
$s_city="臺北";
}elseif(strstr($area_ga,"香港")!==false){
$s_city="香港";
}elseif(strstr($area_ga,"廣西")!==false){
$s_city="南寧";
}elseif(strstr($area_ga,"浙江")!==false){
$s_city="杭州";
}elseif(strstr($area_ga,"江蘇")!==false){
$s_city="南京";
}elseif(strstr($area_ga,"山東")!==false){
$s_city="濟(jì)南";
}elseif(strstr($area_ga,"安徽")!==false){
$s_city="合肥";
}elseif(strstr($area_ga,"湖南")!==false){
$s_city="長沙";
}elseif(strstr($area_ga,"四川")!==false){
$s_city="成都";
}elseif(strstr($area_ga,"云南")!==false){
$s_city="昆明";
}elseif(strstr($area_ga,"廣東")!==false){
$s_city="廣州";
}elseif(strstr($area_ga,"貴州")!==false){
$s_city="貴陽";
}elseif(strstr($area_ga,"西藏")!==false){
$s_city="拉薩";
}elseif(strstr($area_ga,"新疆")!==false){
$s_city="烏魯木齊";
}elseif(strstr($area_ga,"蒙古")!==false){
$s_city="呼和浩特";
}elseif(strstr($area_ga,"黑龍江")!==false){
$s_city="哈爾濱";
}elseif(strstr($area_ga,"遼寧")!==false){
$s_city="沈陽";
}elseif(strstr($area_ga,"吉林")!==false){
$s_city="長春";
}elseif(strstr($area_ga,"河南")!==false){
$s_city="鄭州";
}elseif(strstr($area_ga,"湖北")!==false){
$s_city="武漢";
}elseif(strstr($area_ga,"山西")!==false){
$s_city="太原";
}elseif(strstr($area_ga,"陜西")!==false){
$s_city="西安";
}elseif(strstr($area_ga,"甘肅")!==false){
$s_city="蘭州";
}elseif(strstr($area_ga,"寧夏")!==false){
$s_city="銀川";
}elseif(strstr($area_ga,"海南")!==false){
$s_city="?";
}elseif(strstr($area_ga,"江西")!==false){
$s_city="南昌";
}elseif(strstr($area_ga,"澳門")!==false){
$s_city="澳門";
}
//如果都不存在 就是默認(rèn)顯示廣州 比如本地機(jī)
else{
$s_city="廣州";
}
【php中strstr查找字符串中包含某些字符的查找函數(shù)嗎】相關(guān)文章:
PHP的字符串函數(shù)10-06
PHP 中的字符串變量10-05
php的字符串常用函數(shù)06-15
php字符串截取函數(shù)06-10
PHP字符串函數(shù)大匯總05-25
PHP字符串操作09-29
php字符串截取問題05-02
Word文檔中怎樣使用查找替換08-22