gpt4 book ai didi

php strstr查找字符串中是否包含某些字符的查找函数

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php strstr查找字符串中是否包含某些字符的查找函数由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

strstr 定义和用法 。

注释:该函数是二进制安全的.

语法 。

strstr(string,search,before_search) 。

  。

参数 描述
string 必需。规定被搜索的字符串。
search

必需。规定所搜索的字符串.

如果此参数是数字,则搜索匹配此数字对应的 ASCII 值的字符.

before_search

可选。默认值为 "false" 的布尔值.

如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分.

  。

技术细节 。

  。

返回值: 返回字符串的剩余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE。
PHP 版本: 4+
更新日志: 在 PHP 5.3 中,新增了 before_search 参数。

  。

更多实例 。

例子 1 。

以 "o" 的 ASCII 值搜索字符串,并返回字符串的剩余部分:

?
1
2
3
<?php
echo strstr( "Hello world!" ,111);
?>

返回 。

o world.

例子 2 返回 "world" 第一次出现之前的字符串部分:

?
1
2
3
<?php
 
echo strstr ( "Hello world!" , "world" ,true);

结果:

Hello 。

例子3 。

查找 "Shanghai" 在 "I love Shanghai!" 中的第一次出现,并返回字符串的剩余部分:

?
1
2
3
<?php
echo strstr ( "I love Shanghai!" , "Shanghai" );
?>

 结果:

Shanghai.

PHP 判断字符串是否包含其它字符 。

以下几个函数均可用来判断某字符串是否包含另外一个字符串PHP 中判断一个字符串是否包含其它字符是很常见的操作。 虽然很简单,但还是写了几个函数,质量可能不是很高,权当锻炼。 如果这几个函数恰好能帮上你的忙,我将会很高兴的。这几个函数中,我比较喜欢第四个。。.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?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求职宝典》107页(2012-02-26更新) 。

其它的还有 PHP 原生支持的函数,如 strstr(),stristr() 等,直接判断就可以了.

定义和用法 。

strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。 该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false.

语法 strstr(string,search) 参数 描述 string 必需。规定被搜索的字符串。 search 必需。规定所搜索的字符串。如果该参数是数字,则搜索匹配数字 ASCII 值的字符。 提示和注释 注释:该函数是二进制安全的。 注释:该函数对大小写敏感。如需进行大小写不敏感的搜索,请使用 stristr().

例子 1 。

?
1
2
3
<?php
echo strstr ( "Hello world!" , "world" );
?>

//输出:world! 例子 2 。

在本例中,我们将搜索 "o" 的 ASCII 值所代表的字符:

?
1
2
3
<?php
echo strstr ( "Hello world!" ,111);
?>

//输出:o world! 例子 3 。

?
1
2
3
4
5
6
7
8
<?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
?>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
$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 = "广州" ;
}

如上代码: 其中 city.dat中是一些城市 格式是这样的 。

广州|深圳|汕头|惠州|珠海|揭阳|佛山|河源|阳江|茂名|湛江|梅州|肇庆|韶关|潮州|东莞|中山|清远|江门|汕尾|云浮|增城|从化|乐昌|南雄|台山|开平|鹤山|恩平|廉江|雷州|吴川|高州|化州|高要|四会|兴宁|陆丰|阳春|英德|连州|普宁|罗定|北京|天津|上海|重庆|乌鲁木齐|克拉玛依|石河子|阿拉尔|图木舒克|五家渠|哈密|吐鲁番|阿克苏|喀什|和田|伊宁|塔城|阿勒泰|奎屯|博乐|昌吉|阜康|库尔勒|阿图什|乌苏|拉萨|日喀则|银川|石嘴山|吴忠|固原|中卫|呼和浩特|包头|乌海|赤峰|通辽|鄂尔多斯|呼伦贝尔|巴彦淖尔|乌兰察布|霍林郭勒|满洲里|牙克石|扎兰屯|根河|额尔古纳|丰镇|锡林浩特|二连浩特|乌兰浩特| 。

参考 。

?
1
2
3
4
5
6
7
8
9
10
<?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
?>

注释:该函数对大小写敏感。如需进行不区分大小写的搜索,请使用 stristr() 函数.

最后此篇关于php strstr查找字符串中是否包含某些字符的查找函数的文章就讲到这里了,如果你想了解更多关于php strstr查找字符串中是否包含某些字符的查找函数的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com