當前位置:才華齋>計算機>php語言>

PHP程式設計師要掌握的知識點

php語言 閱讀(2.24W)

體統掌握好每一個知識點,在敲程式碼的時候才會得心應手。以下是本站小編精心為大家整理的PHP程式設計師要掌握的知識點,希望對大家有所幫助!更多內容請關注應屆畢業生網!

PHP程式設計師要掌握的知識點

  一、web 架構,安全,專案經驗

2.1 介紹xdebug,apc,eAccelerator,Xcache,Zend opt的使用經驗。

2.2 使用mod_rewrite,在伺服器上沒有/archivers/這個物理檔案時,重定向到 ,請先開啟mod_rewrite.

首先,開啟mod_rewrite模組。

其次,找到以下程式碼段:

Options FollowSymLinks

AllowOverride None

將其中的:AllowOverride None 改為 AllowOverride All ,重啟httpd服務即可。

然後,在專案根目錄下簡歷 cess 檔案,填寫規則。

2.3 MySQL資料庫作釋出系統的儲存,一天五萬條以上的增量,預計運維三年,怎麼優化?

a. 設計良好的資料庫結構,允許部分資料冗餘,儘量避免join查詢,提高效率。

b. 選擇合適的表字段資料型別和儲存引擎,適當的新增索引。

c. mysql庫主從讀寫分離。

d. 找規律分表,減少單表中的資料量提高查詢速度。

e。新增快取機制,比如memcached,apc等。

f. 不經常改動的頁面,生成靜態頁面。

g. 書寫高效率的SQL。比如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE.

2.4 寫出一種排序演算法(原理),並說出優化它的方法。

2.5 請簡單闡述您最得意的開發之作

2.6 對於大流量的網站,您採用什麼樣的方法來解決各頁面訪問量統計問題

a. 確認伺服器是否能支撐當前訪問量。

b. 優化資料庫訪問。參考2.3

c. 禁止外部訪問連結(盜鏈), 比如圖片盜鏈。

d. 控制檔案下載。

e. 使用不同主機分流。

f. 使用瀏覽統計軟體,瞭解訪問量,有針對性的進行優化。

2.7 您是否用過模板引擎? 如果有您用的模板引擎的名字是?

  Smarty

2.8 請介紹Session的原理,大型網站中Session方面應注意什麼?

2.9 測試php效能和mysql資料庫效能的工具,和找出瓶頸的方法。

2.10 正則提出一個網頁中的所有連結.

2.11 介紹一下常見的SSO(單點登陸)方案(比如dedecms整合discuz的passport)的原理。

2.12 您寫過的PHP框架的特點,主要解決什麼問題,與其他框架的不同點。

2.13 大型的論壇/新聞文章系統/SNS網站在效能優化上有什麼區別?

2.14 相簿類應用:要求在瀏覽器中能同時選中並上傳多個檔案,圖片要求能剪裁,壓縮包在伺服器端解壓。能上傳單個達50M的檔案。上傳過程中有進度條顯示。每個圖片能生成四種大小縮圖,視訊檔案要轉成flv供flash播放。敘述要涉及的各類開源軟體和簡單用途。

一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最後只剩下一隻猴子為止,那隻猴子就叫做大王。要求程式設計模擬此過程,輸入m、n, 輸出最後那個大王的編號。用程式模擬該過程。

  二. unix/linux 基本使用

3.1 linux下檢視當前系統負載資訊的一些方法。

3.2 vim的基本快捷鍵。

3.3 ssh 安全增強方法;密碼方式和rsa key 方式的配置。

3.4 rpm/apt/yum/ports 裝包,查詢,刪除的基本命令。

3.5 Makefile的基本格式,gcc 編譯,連線的命令,-O0 和-O3區別。

3.6 gdb,strace,valgrind的基本使用.

  三. 前端,HTML,JS

css盒模型。

javascript中的prototype。

javascript中this物件的`作用域。

IE和firefox事件冒泡的不同。

什麼是怪異模式,標準模式,近標準模式。

DTD的定義

IE/firefox常用hack.

firefox,IE下的前端js/css除錯工具。

  四.如何理解 ThinkPHP 3.0 架構三(核心 + 行為 + 驅動)中的行為?

核心 + 行為 + 驅動

TP官方簡稱為:CBD

這個問題,在TP手冊中已經有委詳細地闡述了。。

核心(Core):就是框架的核心程式碼,不可缺少的東西,TP本身是基於MVC思想開發的框架。

行為(Behavior) :行為在新版ThinkPHP的架構裡面起著舉足輕重的作用,在系統核心之上,設定了很多標籤擴充套件位,而每個標籤位置可以依次執行各自的獨立行為。行為擴充套件就因此而誕生了,而且很多系統功能也是通過內建的行為擴充套件完成的,所有行為擴充套件都是可替換和增加的,由此形成了底層框架可組裝的基礎。

驅動( Driver ):資料庫驅動、快取驅動、標籤庫驅動和模板引擎驅動,以及外接的類擴充套件。

最好就是下載一份文件下來看,基本上TP裡面所有的功能,都會有很詳細的描述和範例講解。

框架,即framework。其實就是某種應用的半成品,就是一組元件,供你選用完成你自己的系統。簡單說就是使用別人搭好的舞臺,你來做表演。而且,框架一般是成熟的,不斷升級的軟體。

  為什麼要用框架?

因為軟體系統發展到今天已經很複雜了,特別是伺服器端軟體,設計到的知識,內容,問題太多。在某些方面使用別人成熟的框架,就相當於讓別人幫你完成一些基礎工作,你只需要集中精力完成系統的業務邏輯設計。而且框架一般是成熟,穩健的,他可以處理系統很多細節問題,比如,事物處理,安全性,資料流控制等問題。還有框架一般都經過很多人使用,所以結構很好,所以擴充套件性也很好,而且它是不斷升級的,你可以直接享受別人升級程式碼帶來的好處。

框架一般處在低層應用平臺(如java 裡的 J2EE)和高層業務邏輯之間的中間層。

ThinkPHP是一個開源的PHP框架, 是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的

原名FCS,2007年元旦正式更名為ThinkPHP,並且遵循Apache2開源協議釋出。早期的思想架構來源於Struts,後來經過不斷改進和完善,同時也借鑑了國外很多優秀的框架和模式,使用面向物件的開發結構和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(標籤庫)、RoR的ORM對映和 ActiveRecord模式,封裝了CURD和一些常用操作,單一入口模式等,在模版引擎、快取機制、認證機制和擴充套件性方面均有獨特的表現

使用ThinkPHP,你可以更方便和快捷的開發和部署應用,當然不僅僅是企業級應用,任何PHP應用開發都可以從ThinkPHP的簡單、相容和快速的特性中受益。簡潔、快速和實用是ThinkPHP發展秉承的宗旨,為此ThinkPHP會不斷吸收和融入更好的技術以保證其新鮮和活力,提供WEB應用開發的最佳實踐!

作為一個整體開發解決方案,ThinkPHP能夠解決應用開發中的大多數需要,因為其自身包含了底層架構、相容處理、基類庫、資料庫訪問層、模板引擎、快取機制、外掛機制、角色認證、表單處理等常用的元件,並且對於跨版本、跨平臺和跨資料庫移植都比較方便。並且每個元件都是精心設計和完善的,應用開發過程僅僅需要關注您的業務邏輯。