- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个 if 语句,如下所示 if (not(fullpath.lower().endswith(".pdf")) or not (fullpath.lower().endswith(tup
然而,在 PHP 中,可以: only appears if $foo is true. only appears if $foo is false. 在 Javascript 中,能否在一个脚
XML有很多好处。它既是机器可读的,也是人类可读的,它具有标准化的格式,并且用途广泛。 它也有一些缺点。它是冗长的,不是传输大量数据的非常有效的方法。 XML最有用的方面之一是模式语言。使用模式,您可
由于长期使用 SQL2000,我并没有真正深入了解公用表表达式。 我给出的答案here (#4025380)和 here (#4018793)违背了潮流,因为他们没有使用 CTE。 我很欣赏它们对于递
我有一个应用程序: void deleteObj(id){ MyObj obj = getObjById(id); if (obj == null) { throw n
我的代码如下。可能我以类似的方式多次使用它,即简单地说,我正在以这种方式管理 session 和事务: List users= null; try{ sess
在开发J2EE Web应用程序时,我通常会按以下方式组织我的包结构 com.jameselsey.. 控制器-控制器/操作转到此处 服务-事务服务类,由控制器调用 域-应用程序使用的我的域类/对象 D
这更多是出于好奇而不是任何重要问题,但我只是想知道 memmove 中的以下片段文档: Copying takes place as if an intermediate buffer were us
路径压缩涉及将根指定为路径上每个节点的新父节点——这可能会降低根的等级,并可能降低路径上所有节点的等级。有办法解决这个问题吗?有必要处理这个吗?或者,也许可以将等级视为树高的上限而不是确切的高度? 谢
我有两个类,A 和 B。A 是 B 的父类,我有一个函数接收指向 A 类型类的指针,检查它是否也是 B 类型,如果是将调用另一个函数,该函数接受一个指向类型 B 的类的指针。当函数调用另一个函数时,我
有没有办法让 valgrind 使用多个处理器? 我正在使用 valgrind 的 callgrind 进行一些瓶颈分析,并注意到我的应用程序中的资源使用行为与在 valgrind/callgrind
假设我们要使用 ReaderT [(a,b)]超过 Maybe monad,然后我们想在列表中进行查找。 现在,一个简单且不常见的方法是: 第一种可能性 find a = ReaderT (looku
我的代码似乎有问题。我需要说的是: if ( $('html').attr('lang').val() == 'fr-FR' ) { // do this } else { // do
根据this文章(2018 年 4 月)AKS 在可用性集中运行时能够跨故障域智能放置 Pod,但尚不考虑更新域。很快就会使用更新域将 Pod 放入 AKS 中吗? 最佳答案 当您设置集群时,它已经自
course | section | type comart2 : bsit201 : lec comart2 :
我正在开发自己的 SDK,而这又依赖于某些第 3 方 SDK。例如 - OkHttp。 我应该将 OkHttp 添加到我的 build.gradle 中,还是让我的 SDK 用户包含它?在这种情况下,
随着 Rust 越来越充实,我对它的兴趣开始激起。我喜欢它支持代数数据类型,尤其是那些匹配的事实,但是对其他功能习语有什么想法吗? 例如标准库中是否有标准过滤器/映射/归约函数的集合,更重要的是,您能
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 9 年前。 Improve
我一直在研究 PHP 中的对象。我见过的所有示例甚至在它们自己的对象上都使用了对象构造函数。 PHP 会强制您这样做吗?如果是,为什么? 例如: firstname = $firstname;
...比关联数组? 关联数组会占用更多内存吗? $arr = array(1, 1, 1); $arr[10] = 1; $arr[] = 1; // <- index is 11; does the
我是一名优秀的程序员,十分优秀!