PHP 文字列に他の文字が含まれているかどうかを判断する
次の関数を使用して、文字列に別の文字が含まれているかどうかを判断することは、PHP では非常に一般的な操作です。 非常に簡単ですが、いくつかの関数を書きました。品質はそれほど高くないかもしれませんが、練習として使用してください。 これらの機能があなたのお役に立てれば大変嬉しく思います。これらの関数の中で、私は 4 番目の関数が好きです。 。 。
<?php /** * 以下几个函数均可用来判断某字符串是否包含另外一个字符串 * PHP 中判断一个字符串是否包含其它字符是很常见的操作。 * 虽然很简单,但还是写了几个函数,质量可能不是很高,权当锻炼。 * 如果这几个函数恰好能帮上你的忙,我将会很高兴的。 */ /** * 利用一下 strpos() 函数 * @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() 函数 * @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 の先頭にある場合、関数は int(0) を返し、0 は false ですが、$b は確かに返されるためです。 $a にあるため、!== を使用して型を決定し、それが厳密に false であることを確認してください。昨夜中関村書籍館に行ったところ、strpos === true を判定に使用している本がありましたが、これは非常に間違っています。 。 。
エラーが発生した書籍は『PHP就職ガイド』(2012-02-26更新)の107ページです
その他には、strstr()、stristr()など、PHPがネイティブにサポートしている関数も含まれます。直接。
定義と使用法
strstr() 関数は、別の文字列内で最初に出現する文字列を検索します。
この関数は、文字列の残りの部分 (一致する点から) を返します。検索された文字列が見つからない場合は false を返します。
構文
strstr(string,search)
パラメータの説明
string 必須。検索する文字列を指定します。
検索が必要です。検索する文字列を指定します。引数が数値の場合、ASCII 数値に一致する文字を検索します。
ヒントとメモ
注: この関数はバイナリセーフです。
注: この関数では大文字と小文字が区別されます。大文字と小文字を区別しない検索の場合は、stristr() を使用します。
例 1
<?php echo strstr("Hello world!","world"); ?>
//出力: world!
例 2
この例では、ASCII 値「o」で表される文字を検索します:
<?php echo strstr("Hello world!",111); ?>
//出力: o world!例 3
<?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 ?>
$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="济南"; }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="澳门"; } //如果都不存在 就是默认显示广州 比如本地机 else{ $s_city="广州"; }
广州|深圳|汕头|惠州|珠海|揭阳|佛山|河源|阳江|茂名|湛江|梅州|肇庆|韶关|潮州|东莞|中山|清远|江门|汕尾|云浮|增城|从化|乐昌|南雄|台山|开平|鹤山|恩平|廉江|雷州|吴川|高州|化州|高要|四会|兴宁|陆丰|阳春|英德|连州|普宁|罗定|北京|天津|上海|重庆|乌鲁木齐|克拉玛依|石河子|阿拉尔|图木舒克|五家渠|哈密|吐鲁番|阿克苏|喀什|和田|伊宁|塔城|阿勒泰|奎屯|博乐|昌吉|阜康|库尔勒|阿图什|乌苏|拉萨|日喀则|银川|石嘴山|吴忠|固原|中卫|呼和浩特|包头|乌海|赤峰|通辽|鄂尔多斯|呼伦贝尔|巴彦淖尔|乌兰察布|霍林郭勒|满洲里|牙克石|扎兰屯|根河|额尔古纳|丰镇|锡林浩特|二连浩特|乌兰浩特|
<?php echo strstr('aaaaaaaaaaaboaaaaaaaaaaaaboxcccccccccbcccccccccccccc','box')."<br>\n"; //输出boxcccccccccbcccccccccccccc // 完整匹配中间的box 不因前而的b而停止 echo strstr('aaaaaaAbaaa aaaa aaaaaaaaaboxccccccccccccboxccccccccccc','box')."<br>\n"; //输出boxccccccccccccboxccccccccccc // 有两个关键字时, 遇到第一个停止. echo strstr('Subscrtibe our to free newsletter about New Freew to','to')."<br>\n"; //输出to free newsletter about New Freew to ?>
文字列に特定の文字が含まれているかどうかを確認する php strstr の検索機能に関連するその他の記事については、こちらをご覧ください。 PHP 中国語 Web サイトに注意してください。