PHP中nl2br strpos用法

一.nl2br

nl2br,就是在字符串所有新行之前插入html换行标记。用来解决需要大量换行而太过麻烦的问题,举个例子:

<?php
header("content-type:text/html;charset=utf-8");

$m = <<<STR
张三,男,20
李四,女,19
王五,女,21


STR;

echo $m;  

若直接输出$m则三条内容都会出现在一行,普通换行需要在每条后加<br>太过麻烦,若记录过多,则要加上千个<br>,所以采用nl2br简化代码。

$m = <<<STR
张三,男,20
李四,女,19
王五,女,21
STR;
$n = nl2br($m);  //实现自动换行
echo $n; 

二.strpos

strpos用于查找字符串首次出现的位置。

int strpos(string $haystack,mixed $needle [,int $offset=0])此为strpos语法,有三个函数。其中第一个函数表示在此字符串中查找,第二个函数表示需要查找的字符串,若它不是一个字符串,那它将被转化成整型并被视为字符的顺序值。第三个函数可选写或不写,可指定从$haystack中哪个字符开始查找。strpos函数以整型返回位置信息,若未找到第二个参数needle则会返回布尔型的false值。

此时容易出现问题,下面代码中,最后结果为存在,而给定的字符串$m中并未出现e,


$m = 'abc';
$n = strpos($m,'e');
var_dump($n);  

if($n>=0){
	echo '存在';

}else{
	echo '不存在';
}

原因就涉及到false与0的比较了,之前提过若没找到needle则会返回布尔型的false值,没有找到e,此时$n存的是false,而false与0的数据类型不一致,0向布尔型转换,转换结果也是false,所以符合>=的条件,就会存在了。而要避免这个问题,我们可以采用===全等于来写if语句,如下

if($n===false){
	echo '不存在';

}else{
	echo '存在';
}

如此,若是存在那必不等于false了,如不存在就返回false最终结果也是正确的。至于为什么不选用==而是===是因为==并没有包括数据类型的相等,若是字符出现在第一个位置,那它就是0,又会涉及到0与false比较最终相等,结果就出现了问题,所以我们采用===。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值