php中的 nl2br() 和 strpos() 函式
阿新 • • 發佈:2018-11-28
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
這是因為==和===的區別導致的