1、雙引號和單引號的區別php
2、經常使用的超全局變量(8個)css
***html
* **前端
3、HTTP中POST、GET、PUT、DELETE方式的區別mysql
HTTP定義了與服務器交互的不一樣的方法,最基本的是POST、GET、PUT、DELETE,與其比不可少的URL的全稱是資源描述符,咱們能夠這樣理解:url描述了一個網絡上資源,而post、get、put、delegate就是對這個資源進行增、刪、改、查的操做!git
3.1表單中get和post提交方式的區別web
3.2算法
4、PHP介紹sql
Hypertext Preprocessor----超文本預處理器數據庫
Personal Home Page 原始名稱
目標用途: 容許web開發人員快速編寫動態生成的web頁面,與其餘頁面相比,PHP是將程序嵌入到HTML文檔中去執行,效率比徹底生成HTML編輯的CGI高不少
HTML: Hypertext Markup Language
創始人: 拉姆斯勒·勒多夫Rasmus Lerdorf,1968年生,加拿大滑鐵盧大學
勒多夫最開始是爲了維護我的網頁,用prel語言寫了維護程序,以後又用c進行了重寫,最終衍生出php/fi
時間軸:
常見的IDE(Intergrated Development Environment): 集成開發環境
常見文本編輯器,具有代碼高亮:
PHP優點
PHP特性:
PHP優點:
PHP技術應用:
PHP認證級別
6、echo、print_r、print、var_dump之間的區別
* echo、print是php語句,var_dump和print_r是函數 * echo 輸出一個或多個字符串,中間以逗號隔開,沒有返回值是語言結構而不是真正的函數,所以不能做爲表達式的一部分使用 * print也是php的一個關鍵字,有返回值 只能打印出簡單類型變量的值(如int,string),若是字符串顯示成功則返回true,不然返回false * print_r 能夠打印出複雜類型變量的值(如數組、對象)以列表的形式顯示,並以array、object開頭,但print_r輸出布爾值和NULL的結果沒有意義,由於都是打印"\n",所以var_dump()函數更適合調試 * var_dump() 判斷一個變量的類型和長度,並輸出變量的數值
7、HTTP狀態碼
常見的HTTP狀態碼:
HTTP狀態碼分類:
中發生了錯誤
8、什麼是魔術引號
魔術引號是一個將自動將進入PHP腳本的數據進行轉義的過程,最好在編碼時不要轉義而在運行時根據須要而轉義
9、如何獲取客戶端的ip(要求取得一個int)和服務器ip的代碼
客戶端:$_SERVER["REMOTE_ADDR"];或者getenv('REMOTE_ADDR')
ip2long進行轉換
服務器端:gethostbyname('www.baidu.com')
10、使用那些工具進行版本控制
cvs、svn、vss、git
11、優化數據庫的方法
12、是否使用過模板引擎?使用的模板引擎的名字是?
Smarty:Smarty算是一種很老的PHP模板引擎了,它曾是我使用這門語言模板的最初選擇。雖然它的更新已經不算頻繁了,而且缺乏新一代模板引擎所具備的部分特性,可是它仍然值得一看。
13、對於大流量網站,採用什麼方法來解決訪問量的問題
14、語句include和require的區別是什麼?爲避免屢次包含同一文件,能夠用(?)語句代替他們
注意:包含文件不存在或者語法錯誤的時候require是致命的,而include不是
15、談談mvc的認識
由模型、視圖、控制器完成的應用程序,由模型發出要實現的功能到控制器,控制器接收組織功能傳遞給視圖
16、 說明php中傳值與傳引用的區別,並說明傳值何時傳引用?
變量默認老是傳值賦值,那也就是說,當將一個表達式的值賦予一個變量時,整個表達式的值被賦值到目標變量,這意味着:當一個變量的賦予另一個變量時,改變其中一個變量的值,將不會影響到另一個變量
php也提供了另一種方式給變量賦值:引用賦值。這意味着新的變量簡單的__引用__(換言之,成爲了其別名或者指向)了原始變量。改動的新的變量將影響到原始變量,反之亦然。使用引用賦值,簡單地將一個&符號加到將要賦值的變量前(源變量)
對象默認是傳引用
對於較大是的數據,傳引用比較好,這樣能夠節省內存的開銷
17、isset、empty、is_null的區別
isset 判斷變量是否認義或者是否爲空
變量存在返回ture,不然返回false 變量定義不賦值返回false unset一個變量,返回false 變量賦值爲null,返回false
empty:判斷變量的值是否爲空,能轉換爲false的都是空,爲空返回true,反之返回false。
"",0,"0",NULL,FALSE都認爲爲空,返回true 沒有任何屬性的對象都認爲是空
is_null:檢測傳入的值(值、變量、表達式)是否爲null
定義了,可是賦值爲Null 定義了,可是沒有賦值 unset一個變量
18、前端調試的工具
19. 簡單描述mysql中,索引,主鍵,惟一索引,聯合索引的區別,對數據庫的性能有什麼影響(從讀寫兩方面)(新浪網技術部)
索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含着對數據表裏全部記錄的引用指針。
普通索引(由關鍵字KEY或INDEX定義的索引)的惟一任務是加快對數據的訪問速度。
普通索引容許被索引的數據列包含重複的值。若是能肯定某個數據列將只包含彼此各不相同的值,在爲這個數據列建立索引的時候就應該用關鍵字UNIQUE把它定義爲一個惟一索引。也就是說,惟一索引能夠保證數據記錄的惟一性。
主鍵,是一種特殊的惟一索引,在一張表中只能定義一個主鍵索引,主鍵用於惟一標識一條記錄,使用關鍵字 PRIMARY KEY 來建立。
索引能夠覆蓋多個數據列,如像INDEX(columnA, columnB)索引,這就是聯合索引。
索引能夠極大的提升數據的查詢速度,可是會下降插入、刪除、更新表的速度,由於在執行這些寫操做時,還要操做索引文件。
20.數據庫中的事務是什麼?
事務(transaction)是做爲一個單元的一組有序的數據庫操做。若是組中的全部操做都成功,則認爲事務成功,即便只有一個操做失敗,事務也不成功。若是全部操做完成,事務則提交,其修改將做用於全部其餘數據庫進程。若是一個操做失敗,則事務將回滾,該事務全部操做的影響都將取消。ACID 四大特性,原子性、隔離性、一致性、持久性。
21.瞭解XSS攻擊嗎?如何防止?
XSS是跨站腳本攻擊,首先是利用跨站腳本漏洞以一個特權模式去執行攻擊者構造的腳本,而後利用不安全的Activex控件執行惡意的行爲。
使用htmlspecialchars()函數對提交的內容進行過濾,使字符串裏面的特殊符號實體化。
22.SQL注入漏洞產生的緣由?如何防止?
SQL注入產生的緣由:程序開發過程當中不注意規範書寫sql語句和對特殊字符進行過濾,致使客戶端能夠經過全局變量POST和GET提交一些sql語句正常執行。
防止SQL注入的方式:
23.PHP網站的主要攻擊方式有哪些?
Forgeries, CSRF)
Evaluation)
Submissions)
24、框架中什麼是單一入口和多入口 , 單一入口的優缺點?
缺點:URL 看起來不那麼美觀,特別是對搜索引擎來講不友好。
25、 對於關係型數據庫而言,索引是至關重要的概念,請回答有關索引的幾個問題:
a)、索引的目的是什麼?
b)、索引對數據庫系統的負面影響是什麼?
負面影響:
建立索引和維護索引須要耗費時間,這個時間隨着數據量的增長而增長;索引須要佔用物理空間,不光是表須要佔用數據空間,每一個索引也須要佔用物理空間;當對錶進行增、刪、改、的時候索引也要動態維護,這樣就下降了數據的維護速度。
c)、爲數據表創建索引的原則有哪些?
d)、 什麼狀況下不宜創建索引?
26、 簡述在MySQL數據庫中MyISAM和InnoDB的區別
區別於其餘數據庫的最重要的特色就是其插件式的表存儲引擎。切記:存儲引擎是基於表的,而不是數據庫。
InnoDB與MyISAM的區別:
InnoDB存儲引擎: 主要面向OLTP(Online Transaction Processing,在線事務處理)方面的應用,是第一個完整支持ACID事務的存儲引擎(BDB第一個支持事務的存儲引擎,已經中止開發)。
特色:
MyISAM存儲引擎: 是MySQL官方提供的存儲引擎,主要面向OLAP(Online Analytical Processing,在線分析處理)方面的應用。
特色:
MySQL5.0版本開始,MyISAM默認支持256T的單表數據;
27、 解釋MySQL外鏈接、內鏈接與自鏈接的區別
先說什麼是交叉鏈接: 交叉鏈接又叫笛卡爾積,它是指不使用任何條件,直接將一個表的全部記錄和另外一個表中的全部記錄一一匹配。
內鏈接 則是隻有條件的交叉鏈接,根據某個條件篩選出符合條件的記錄,不符合條件的記錄不會出如今結果集中,即內鏈接只鏈接匹配的行。
外鏈接 其結果集中不只包含符合鏈接條件的行,並且還會包括左表、右表或兩個表中
的全部數據行,這三種狀況依次稱之爲左外鏈接,右外鏈接,和全外鏈接。
左外鏈接,也稱左鏈接,左表爲主表,左表中的全部記錄都會出如今結果集中,對於那些在右表中並無匹配的記錄,仍然要顯示,右邊對應的那些字段值以NULL來填充。右外鏈接,也稱右鏈接,右表爲主表,右表中的全部記錄都會出如今結果集中。左鏈接和右鏈接能夠互換,MySQL目前還不支持全外鏈接。
28、 寫出三種以上MySQL數據庫存儲引擎的名稱(提示:不區分大小寫)
MyISAM、InnoDB、BDB(BerkeleyDB)、Merge、Memory(Heap)、Example、Federated、
Archive、CSV、Blackhole、MaxDB 等等十幾個引擎
29、 什麼是面向對象?主要特徵是什麼?幾大原則是什麼?
面向對象是程序的一種設計模式,它利於提升程序的重用性,使程序機構更加清晰。 主要特徵是:封裝、繼承、多態。
五大基本原則: 單一職責原則;開放封閉原則;替換原則; 依賴原則; 接口分離原則。
30、什麼是靜態路由,其特色是什麼?什麼是動態路由,其特色是什麼?
參考答案:
靜態路由是由系統管理員設計與構建的路由表規定的路由。適用於網關數量有限的場 合,且網絡拓樸結構不常常變化的網絡。其缺點是不能動態地適用網絡情況的變化,當 網絡情況變化後必須由網絡管理員修改路由表。
動態路由是由路由選擇協議而動態構建的,路由協議之間經過交換各自所擁有的路由信 息實時更新路由表的內容。動態路由能夠自動學習網絡的拓樸結構,並更新路由表。其 缺點是路由廣播更新信息將佔據大量的網絡帶寬。
31、使用過 Memcache 緩存嗎,若是使用過,可以簡單的描述一下它的工做原理嗎?
Memcahce 是把全部的數據保存在內存當中,採用 hash 表的方式,每條數據由 key 和 value 組成,每一個 key 是獨一無二的,當要訪問某個值的時候先按照找到值,而後返回結果。
Memcahce 採用 LRU 算法來逐漸把過時數據清除掉。
32. 列舉流行的 Ajax 框架?說明 Ajax 實現原理是什麼及 json 在 Ajax 中起什麼做用?
流行的 Ajax 框架有 jQuery,Prototype,Dojo,MooTools。
Ajax 的工做原理是一個頁面的指定位置能夠加載另外一個頁面全部的輸出內容,這樣就實現了一個靜態頁面也能獲取到數據庫中的返回數據信息了。因此 Ajax 技術實現了一個靜態網頁在不刷新整個頁面的狀況下與服務器通訊,減小了用戶等待時間,同時也從而下降了網絡流量,加強了客戶體驗的友好程度。
在使用 Ajax 時,涉及到數據傳輸,即將數據從服務器返回到客戶端,服務器端和客戶端分別使用不一樣的腳步語言來處理數據,這就須要一種通用的數據格式,XML 和 json 就是最經常使用的兩種,而 json 比 XML 更簡單。
33、Myql中的事務回滾機制概述
事務是用戶定義的一個數據庫操做序列,這些操做要麼全作要麼全不作,是一個不可分割的工做單位,事務回滾是指將該事務已經完成的對數據庫的更新操做撤銷。
要同時修改數據庫中兩個不一樣表時,若是它們不是一個事務的話,當第一個表修改完,可能第二個表修改過程當中出現了異常而沒能修改,此時就只有第二個表依舊是未修改以前的狀態,而第一個表已經被修改完畢。而當你把它們設定爲一個事務的時候,當第一個表修改完,第二表修改出現異常而沒能修改,第一個表和第二個表都要回到未修改的狀態,這就是所謂的事務回滾。
……