亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

淺談PHP源碼七:關于nl2br, ltrim, rtrim, trim函數

2020-03-22 19:25:05
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于淺談PHP源碼七:關于nl2br, ltrim, rtrim, trim函數,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

淺談PHP源碼七:關于nl2br, ltrim, rtrim, trim函數

string nl2br ( string string )

Returns string with ‘
‘ inserted before all newlines.

在代碼中有注釋如下:

/* it is really faster to scan twice and allocate mem once insted scanning once
and constantly reallocing */

程序先計算需要替換的個數,然后一次性計算需要分配的內存大小。從而減少了每次替換都重新分配內存的開銷。

由此可見PHP源碼的作者的程序優化上下了不少功夫。

源碼摘抄如下:

 str = Z_STRVAL_PP(zstr); // 字符串開始位置 end = str + Z_STRLEN_PP(zstr); // 字符串結束地址 /* it is really faster to scan twice and allocate mem once insted scanning once and constantly reallocing */ while (str end) { // 計算需要替換的位置個數 if (*str == /r ) { if (*(str+1) == /n ) { str++; repl_cnt++; } else if (*str == /n ) { if (*(str+1) == /r ) { str++; repl_cnt++; str++; } if (repl_cnt == 0) { // 如果沒有可替換的字符串,直接返回 RETURN_STRINGL(Z_STRVAL_PP(zstr), Z_STRLEN_PP(zstr), 1); // 給新生成的字符串分配內存 new_length = Z_STRLEN_PP(zstr) + repl_cnt * (sizeof( br / ) - 1); tmp = target = emalloc(new_length + 1);  str = Z_STRVAL_PP(zstr); while (str end) { switch (*str) { case /r : // 沒有break,直接轉下個case case /n : *target++ =  *target++ = b  *target++ = r  *target++ =  *target++ = /  *target++ = if ((*str == /r *(str+1) == /n ) || (*str == /n *(str+1) == /r )) { *target++ = *str++; /* lack of a break; is intentional */ default: *target++ = *str; str++; } *target = /0 // 添加最后的結束字符  RETURN_STRINGL(tmp, new_length, 0); // 返回結果

ltrim — Strip whitespace (or other characters) from the beginning of a string

rtrim — Strip whitespace (or other characters) from the end of a string

trim — Strip whitespace (or other characters) from the beginning and end of a string

這三個函數都是調用html' target='_blank'>static void php_do_trim(INTERNAL_FUNCTION_PARAMETERS, int mode)

===》PHPAPI char *php_trim(char *c, int len, char *what, int what_len, zval *return_value, int mode TSRMLS_DC)

實現,依據不同的mode(ltrim = 1, rtrim = 2, trim = 3)實現。

對于第二個參數,指過濾的字符,在默認情況下是 空格 /n/r/t/v/0

在程序中可以看到過濾用的字符僅有char mask[256];即ASCII 碼的256個值

在使用php_charmask(unsigned char *input, int len, char *mask TSRMLS_DC)函數創建過濾用的字符HASH數組

如果是1或3(程序實現使用的是 mode 1),則過濾源字符串前面的字符,從頭開始遍歷每個字符串,直接hash判斷是否是需要過濾的字符,直到第一個不是過濾字符的位置結束

如果是2或 3(程序實現使用的是 mode 2),則過濾源字符串后面的字符,過程與前面類似。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

淺談PHP源碼六:關于stream_get_wrappers函數

淺談PHP源碼五:關于array 數組的創建

淺談PHP源碼四:關于count函數

以上就是淺談PHP源碼七:關于nl2br, ltrim, rtrim, trim函數的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久小说| 国产午夜精品理论片a级探花| 中文字幕免费精品一区高清| 91美女福利视频高清| 8x海外华人永久免费日韩内陆视频| 日韩在线观看免费高清完整版| x99av成人免费| 亚洲网站在线播放| 黑人精品xxx一区一二区| 欧美片一区二区三区| 亚洲国产97在线精品一区| 亚洲影院污污.| 韩日精品中文字幕| 大伊人狠狠躁夜夜躁av一区| 中文字幕免费精品一区高清| 欧美黑人一区二区三区| 欧美中文字幕视频在线观看| 久久久久国产精品免费网站| 日本韩国在线不卡| 萌白酱国产一区二区| 国内精品中文字幕| 欧美日韩在线看| 国产精品国模在线| 国产一区二区在线播放| 国产精品成人v| 久久视频在线播放| 中文字幕一区二区精品| 国产精品高清在线观看| 亚洲a区在线视频| 亚洲国产高清福利视频| 日韩精品免费综合视频在线播放| 欧美大成色www永久网站婷| 91色视频在线导航| 欧美黄色片免费观看| 久久最新资源网| 欧美贵妇videos办公室| 亚洲欧洲av一区二区| 国产精品女视频| 中文字幕欧美日韩在线| 久久天堂av综合合色| 精品久久久久久久久中文字幕| 久久综合电影一区| 日本久久久久久久| 欧美精品一区三区| 欧美激情中文字幕乱码免费| 亚洲第一视频在线观看| 91sa在线看| 久久久精品国产| 亚洲性av在线| 欧美黑人一区二区三区| 成人国内精品久久久久一区| 97人洗澡人人免费公开视频碰碰碰| 中文字幕亚洲无线码a| 日韩动漫免费观看电视剧高清| 亚洲石原莉奈一区二区在线观看| 欧美日韩国产精品一区二区不卡中文| 欧美一区二区三区免费视| 亚洲色图50p| 日韩在线免费高清视频| 精品国产一区二区三区久久狼5月| 国产亚洲视频在线观看| 九九精品在线播放| 福利视频一区二区| 国产成人精品视| 国模叶桐国产精品一区| 国产在线拍偷自揄拍精品| 91亚洲精品在线观看| 91在线无精精品一区二区| 成人精品一区二区三区电影免费| 国产成人精品久久二区二区| 久久成人人人人精品欧| 国产一区二区丝袜高跟鞋图片| 日韩在线资源网| 精品久久久久久久中文字幕| 免费97视频在线精品国自产拍| 中文字幕国产亚洲| 国内外成人免费激情在线视频网站| 日韩av中文在线| 国产日韩欧美电影在线观看| 日韩欧美在线免费观看| 精品视频偷偷看在线观看| 亚洲精品www久久久| 欧美成人免费观看| 亚洲视频在线免费观看| 亚洲级视频在线观看免费1级| 久久人人看视频| 91精品国产91久久久久福利| 日韩中文字幕视频在线观看| 成人av在线亚洲| 91精品免费久久久久久久久| 亚洲男人的天堂网站| 欧美成人久久久| 一本色道久久88综合日韩精品| 国产精品美乳在线观看| 国产精品久久久久久久久粉嫩av| 久久久亚洲精品视频| 日韩在线视频观看| 欧美激情一区二区三区高清视频| 91精品国产综合久久久久久蜜臀| 国产欧美日韩视频| 欧美丝袜一区二区三区| 亚洲黄一区二区| 欧美一级高清免费| 亚洲影院污污.| 日韩欧美在线国产| 海角国产乱辈乱精品视频| 精品久久久久久久大神国产| 欧美成人亚洲成人日韩成人| 日韩在线观看你懂的| 欧美成人免费在线观看| 国产一区二区在线播放| 欧美黄色片在线观看| 亚洲国产欧美一区二区三区同亚洲| 国内精品国产三级国产在线专| 久久精品国产久精国产一老狼| 欧美成人午夜免费视在线看片| 国产精品黄色影片导航在线观看| 激情懂色av一区av二区av| 亚洲成人精品久久| 欧美精品一本久久男人的天堂| 国产日韩精品电影| 另类少妇人与禽zozz0性伦| 亚洲一区二区三| 久久视频免费在线播放| 精品成人国产在线观看男人呻吟| 久久久久久久爱| 国产精品国内视频| 亚洲影院在线看| 国产精品免费久久久| 91中文在线观看| 欧美一级黑人aaaaaaa做受| 国产成人福利视频| 久久久久久国产精品美女| 91免费在线视频| 欧美性受xxxx白人性爽| 久久网福利资源网站| 久久精品91久久久久久再现| 欧美日韩免费在线观看| 91精品国产99| 欧美裸体xxxx极品少妇| 亚洲综合日韩中文字幕v在线| 欧美激情一区二区三区成人| 亚洲福利在线观看| 欧美精品18videosex性欧美| 欧美性感美女h网站在线观看免费| 久久国产精品久久久久久| 国产日韩精品一区二区| 成人欧美一区二区三区黑人孕妇| 日韩欧美在线看| 久久久亚洲国产天美传媒修理工| 亚洲精品有码在线| 欧美激情综合亚洲一二区| 日本最新高清不卡中文字幕| 日产精品久久久一区二区福利| 中文日韩电影网站| 91最新国产视频| 欧美激情视频一区二区| 久久99热精品这里久久精品| 狠狠久久五月精品中文字幕| 亚洲日本中文字幕免费在线不卡| 欧美成人精品h版在线观看| 国产日韩在线亚洲字幕中文| 91av在线播放视频| 精品视频在线播放免|