字符串处理兵器库——查找字符串中的特定子串

字符串处理兵器库——查找字符串中的特定子串

问题

想要知道一个字符串是否包含一个特定的子串。例如,想查看email地址是否包含一个@。

解决方案

使用strpos()函数。解决这个问题的代码如下:

<?php
    if(strpos($_GET['email'],'@')===false){
        print 'There was no @ in the e-mail address!';
    }

讨论

strpos()函数返回值是子串(就像“要捞的针”)在字符串(就像“大海”)中出现的第一个位置。如果大海(字符串)中没有找到针(子串),strpos()函数将返回false。如果子串位于这个字符串的起始位置,那将返回0,因为0表示字符串的开始位置。为了区别返回值0和false,必须使用恒等操作符(===)或非恒等操作符(!==),而不能使用常规的相等(==)和不相等(!=)。

函数详解

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )  

返回 needle 在 haystack 中首次出现的数字位置。

参数

haystack
在该字符串中进行查找。

needle
如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。

offset
如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。和 strrpos()、 strripos()不一样,这个偏移量不能是负数。

返回值

返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。 如果没找到 needle,将返回 FALSE。


参考资料:
《PHP cookbook》
PHP Manual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值