(持續更新喲,點波關注和收藏吧)
!!!如要學習具體需要善於運用搜尋引擎。!!!
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協議是任何人都可以訪問的。