php基礎知識(三)

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)不能被重寫

發佈了57 篇原創文章 · 獲贊 1 · 訪問量 3737
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章