前端冷知識(持續更新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的以下所有程式碼,例如

<?php switch ($a){
 case 0:
  echo "0";
 case 1:
  echo "1";
 case 2:
  echo "2";}?>

當$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協議是任何人都可以訪問的。

http和htp協議簡介鏈接