前端冷知識(持續更新2020.12.13)
- 2020 年 12 月 13 日
- 筆記
(持續更新喲,點波關注和收藏吧)
!!!如要學習具體需要善於運用搜索引擎。!!!
php冷知識
1.print和echo都不是真正的函數,但都可以以帶有參數的函數形式進行調用。最關鍵的是 : echo要比print速度快。
printf()函數將一個格式化的字元串出入到瀏覽器中,
sprintf()函數是返回一個格式化後的字元串。
2.雙引號””中,變數名稱將被變數值替代!!!(瀏覽器echo寫入一句話的時候記得\注釋);
單引號”中,變數名稱或其他任何文本將不經修飾發送給瀏覽器;
反向單引號“中,裡面的命令將試著當作伺服器端命令行命令來執行。
3.用gettype()函數獲取變數類型,用settype()函數改變變數類型,intval()轉為整數
類型有bool,int,double(浮點型),string,array,object,resource,NULL。
除此之外php還有很多特定的類型測試函數is_xxx(),如is_array(),is_scalar()等等。
4.isset()變數存在且值不為null返回true,其餘相反,
empty()變數存在且是一個非空非零的值時返回false,其餘相反。
5.elseif等於else if,在一系列的級聯elseif語句中,只有第一個為true條件下的語句將被執行。
6.如果沒有break,switch語句將執行case值為true的以下所有程式碼,例如
當$a的值為0時將執行所有語句,當$a的值為2時只執行最後一條語句。
7.==為弱等於,===為恆等於。
8.fopen()文件模式作用(ps:打開文件,從文件頭開始):
r(只讀)。(ps:無)
r+(讀寫)。(ps:無)
w(寫)。(ps:如果文件已存在,將刪除文件所有內容,如不存在將創建)
w+(讀寫)。(ps:無)
x(謹慎寫)。(ps:如果已有文件,則不會打開且返回false,且php產生一個警告)
x+(謹慎讀或寫)。(同上)
a(追加寫)。(ps:如已有文件,從文件末尾開始追加,如沒有,則創建。)
a(追加寫或讀)。(同上)
b(二進位)。(用於與其他模式進行連接……)
t(文本)。
(ps:以上字母后面是作用,並不是嚴格意義的模式名稱)
9.fputs()是fwrite()的別名,可用file_put_contents()代替fwrite()。
10.feof()唯一參數是文件指針,如指向文件末尾則返回true。
使用feof()作為文件結束的測試條件。
11.fgets()讀取文件內容,每次一行。
fgetss()同上,還可選擇過濾。
fgetcsv()當使用了分隔符(例如製表符或者逗號)的時候可以選擇分行,
可用explode(),implode()(同join()作用),join()(效果和explode()相反),strtok()(一次從字元串取一個子字元串) 分隔。
12.讀取整個文件:readfile(),fpassthru()(ps:需要先用fopen()打開文件,然後再將文本指針作為參數傳遞給fpassthru(),這樣就可以把所指向文件內容發送到標準輸入,然後再將文件關閉。成功返回true失敗返回false。),file()(把結果發送到一個數組),file_get_contents()(以字元串的形式返迴文件內容)。
13.讀取一個字元fgetc(),一次讀取一個字元。讀取任意長度fread()。
14.查看文件是否存在file_exists()。確定文件大小filesize()。刪除一個文件unlink()。可以對文件指針進行操作,在文件中定位:rewind(),fseek(),ftell()。文件鎖定flock()(ps:無法在NFS或其他網路文件系統中使用,無法在多執行緒伺服器API中使用)。
!!!如要學習具體需要善於運用搜索引擎。!!!
15.array()和echo一樣實際上是一個語言結構而不是函數。(可用[]代替array()。)
sort()(按值從小到大排序), rsort()(加r反序),usort()(加u自定義);
asort()(對數組進行排序並保持索引關係),arsort()(加r反序),uasort()(加u自定義);
ksort()(按照鍵名排序),krsort()(加r反序),uksort()(加u自定義)。
使用以上函數進行排序,或創建用戶自定義排序函數或使用array_multisort()函數。
也可使用array_reverse()(與原來數組相反排序),shuffle()隨機。
「=」可以將數組複製到另一個數組,添加數組元素array_push(),刪除數組元素array_pop()。sizeof()是count()的別名函數。
通過count(),sizeof(),array_count_values() 統計數組元素。
16.訪問數組可用[]或{}。foreach()循環轉為數組和對象打造,索引數組也可用list()(ps:可以將一個數組分解為一系列的值)和each()(ps:返回數組的當前元素,並將下一個元素作為當前元素,數組將記錄當前元素,如需多次使用數組,用reset()函數將當前元素作為數組的開始。)
extract()將數組轉化為標量變數。
以相同方式使用或者修改數組中每一個元素用array_walk()。
17.鍵與值之間用=>符號。
18.<>與!=相同。+為聯合操作符,嘗試把後面數組元素添加到前面數組的末尾,若具有相同的鍵則不被添加。
19.了解算術操作符,邏輯操作符,位操作符,比較操作符,數組操作符等。
20.數組瀏覽:each(),next(),使指針指向下一個元素。
prev()(和next()相反),end(),逆序遍歷。
current()(返回數組中的當前單元),pos()(current()的別名)。
reset()(前文有)。
21.字元串截斷(默認除去字元\n,\r,\t,\x0B,\0,空格):
trim()(還除去字元串開始位置和結束位置的空格,並返回)
rtrim()的別名函數chop()(從結束處除去空格)
ltrim()(從開始處除去空格)
22.使用htmlspecialchars()函數過濾輸出至瀏覽器的字元串(實體編碼)。
使用str_replace(),substr_replace()函數進行過濾或替換子字元串。
使用nl2br()函數進行html格式化。使用substr()得到某個固定格式字元串的一部分。
23.了解轉換規範支援的類型碼
24.字元串的排序:strcmp(),strcasecmp()(不區分大小寫),strnatcmp()(按照自然排序)
25.strlen()判斷字元長度
26.在字元串中查找字元串:strstr(),strchr(),strrchr(),stristr()
27.查找子字元串的位置:strpos()和strrpos()
28.了解正則表達式,目前通常是perl風格,使用PCRE正則表達式,每個表達式必須包含在一對分隔符中,最常見的分隔符是 / ,如/xluo/,如果要在正則表達式中匹配/需要用反斜杠\轉義,如/xluo\/\//,PCRE正則表達式語法鏈接。了解模式修飾符,鏈接。
29.
30.
協議冷知識
1.HTTP是Hyper Text Transfer Protocol,超文本傳輸協議;
FTP是File Transfer Protocol,文件傳輸協議;
ftp的協議和http協議的主要區別在於ftp是需要用戶名和密碼才能訪問(匿名登陸除外),這樣做的目的在於有的文件只供特殊人訪問,而http協議是任何人都可以訪問的。