php中的 nl2br() 和 strpos() 函数

nl2br()函数

我们在换行时使用的一般都是<br>,但是在大段需要换行的代码时,使用<br>就有些繁琐了,这时就可以使用nl2br()函数了

nl2br()函数是在所以新行之前插入HTML换行标记,它的语法为

string nl2br(string $string[,bool $is_xhtml = true])

它的意思就是在字符串string所有新行之前插入'<br />'或'<br>'并返回

下面有个例子

$str = <<<STR
张三,男,20
李四,女,19
王五,男,20
STR;

$str = nl2br($str);//nl表示换行2br表示转换成br
echo $str;

结果为

张三,男,20
李四,女,19
王五,男,20

其中nl2br中的nl表示换行,2br表示转换为br

strpos()函数

strpos()函数是查找字符串首次出现的位置

它的语法为

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

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

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

offset : 可选的 offset 参数可以用来指定从 haystack 中的哪一个字符开始查找。返回的数字位置是相对于 haystack 的起始位置而言的

它的返回值是以整型返回位置信息,如果没有找到needle,strpos()函数将会返回布尔类型的false值

如下例

$str = "查找关键词(或违禁词),如爆头";
$n = strpos($str,'爆头');
var_dump($n);
if($n >= 0){
echo '找到爆头';
}else{
echo '没有找到爆头';
}

结果为

找到了爆头

但像上例也有问题

当我们查询一个字符串中并没有存在的一个字符的话,就会出错如下例

$str = "查找关键词(或违禁词),如爆头";
$n = strpos($str,'我');
var_dump($n);
//false和0作比较,0就会向bool类型转换,结果为false
if($n >= 0){
	echo '找到我';
}else{
	echo '没有找到我';
 }

结果为

找到我

字符串中并没有‘我’ 但是却输出了‘找到我’,这是因为false和0作比较,0就会向bool类型转换,结果为false,false等于false,所以才会输出找到我

可以使用===(全等)来解决这个问题

$str = "abc";
$find = 'e';

$n = strpos($str,$find);
var_dump($n);
if($n===false){
	echo '未找到'.$find;
}else{
	echo '找到了'.$find;
}

输出

未找到e

因为===是全等于,所以当false和0作比较时,两个就不相等,所以输出正确

但是不能将===写做==,如下例

$str = "abc";
$find = 'a';

$n = strpos($str,$find);
var_dump($n);
if($n==false){
	echo '未找到'.$find;
}else{
	echo '找到了'.$find;
}

输出

未找到a

这是因为==和===的区别导致的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值