fopen |
Fopen( 文本 , ‘r’ ) 函數打開文件或者url |
獲取第三方的內容 Curl && file_get_contents()區別 |
Curl File_get_contents()
Curl: 1)對DNS信息進行緩存
2)Curl可以請求多個連接時,效率會更好
3)可以模擬多種請求
4)不受php.ini中allow_url_open的影響(遠程讀取信息) |
Pack && unpack |
函數,二進制函數
|
isset代替strlen |
If( strlen($obj) <=12 ){ Echo ‘xxxxxxx’; } 執行效率快主要在於: Strlen()是函數,函數的調用在底層中會進行函數查找,字母小寫化;
Isset()是語言結構,底層實現上沒有太多的開銷。 |
**進行冪運算 |
$x = $y ** 2; $x = pow(2,3); // 2^3 = 8 |
數據庫驅動 Api 區別和選擇 |
數據庫驅動(php程序與數據庫通信的橋樑) Libmysql Mysqlnd
api分三類(根據它的作用定義成驅動) Mysql擴展 Mysqlli Pdo_mysql
區別在於: 可以更好防止sql注入 (就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令) |
Html的意思 |
HyperText markup language 超文本標記語言 |
什麼是協議 |
爲實現數據在網絡中有序進行交換而建立的規則約定 |
http協議的定義 |
超文本傳輸協議,用於從服務端傳輸超文本到本地瀏覽器的傳輸協議
|
http協議的工作原理 對tcp的理解(與三次握手聯繫起來) |
1)客戶端發送請求到服務端,會創建一個tcp連接,並指定端口爲80;
2)服務器會監聽到瀏覽器的請求,一旦監聽到客戶端的請求,就會對請求進行分析,並把分析後的數據返回給瀏覽器客戶端。 |
簡述TCP的三次握手 |
在tcp協議中,tcp協議提供了一個可靠的連接服務,採用三次握手來建立一個連接
1)客戶端發送請求到服務端
2)授予連接
3)客戶端確認連接 |
https的工作原理 |
具有安全性的加密傳輸http協議 |
http協議包含哪些內容 |
http協議的請求 請求方法 請求頭 請求正文
http協議的響應 響應狀態 響應頭 響應正文 |
http請求的方法有哪些 |
Get Post Put 指定的資源位置上傳最新的內容 Delete 請求服務器刪除request_url標識的內容 Trace 回顯服務器收到的請求,用於診斷或測試 Head 與get請求一致,只是響應體不會返回 |
http協議中的狀態碼(200,204,206,301,302,303,304,307,400,401,403,404,500,503)
(需要記憶) |
200 請求被正常處理 204 但是沒資源返回 206 只是返回請求中的一半
301 永久性重定向(從一而終) 302 臨時性重定向(三心二意) 303 與302相似 304 307
400 請求報文語法有誤,服務器無法識別 401 權限不足,請求需要認證 403 請求的對應資源禁止被訪問 404 服務器無法找到對應的資源
500 服務器內部錯誤 503 服務器正忙 |
網絡性能優化 |
1)DNS預解析(DNS:域名系統 域名和IP地址的映射)
2)域名收斂(由服務器統一彙總不同域名)
3)資源內斂(將css,html集成在一起,當做一個文件處理)
4)服務器渲染(在服務器就把頁面渲染好,再發送到客戶端)
5)圖片懶加載 |
Php中有哪幾種主要的運行模式,分別使用的場景 |
Cli 命令行模式 Command line interface
Cgi 通用網關接口 Commom gateway interface
Fastcgi cgi的增強版本 併發 web服務器與cgi程序之間互動的開銷減少,並且可以處理更多的請求
web模塊模式
Isapi |
Apache的運行模式 |
Prefork 單獨的子進程處理不同的請求
Worker 全新的支持多線程,多進程,可以處理海量的請求
Event 有專門處理線程來處理keepalive連接,會將其他活躍請求轉發給其他線程 |
大訪問量下apache和ngnix誰性能高 |
Apache採用的是select網絡I/O模型,低效 |
一般訪問量的網站優先選擇apache,穩定可靠 |
1)模塊豐富 2)rewrite功能強大 |
大訪問量網站選擇ngnix,支持更多的併發 |
處理靜態內容(html,圖片) |
客戶端斷開連接後,服務器端php腳本會中止執行嗎 |
Ignore_user_abort = true |
是否允許用php代碼開始標誌的縮寫 |
Short_open_tag |
如何格式化輸出json |
Json_encode() |
Httpd.conf Php.ini |
Apache主配置文件
Php配置文件
|
php接到用戶的請求,到輸出頁面都做了什麼 PHP工作流程 |
1)掃描 將index.php變成一個個語言片段 2)解析 將語言片段變成有意義的表達式 3)編譯 表達式編譯成中間碼 4)執行 將中間碼一條條執行 5)輸出 將要輸出的內容輸出到緩衝區 |
什麼是語言片段,php是如何將人工寫的php代碼轉換成語言片段的 |
|
將語言片段變成有意義的表達式的過程叫什麼 |
|
Opcode是什麼 |
中間碼,zend引擎會根據一條條的opcode執行我們的功能 |
如何實現弱類型 |
|
什麼是文件
|
|
文件的類型 |
|
什麼是inode |
|
利用PHP判斷一個文件是不是png圖片 |
|
strtr代替str_replace |
|
Final類的理解 |
1)不能被繼承 2)不能被重寫 |
php基礎知識(三)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.