1、給定一個字符串str,怎么判斷它是否是一個數組arr的鍵名?
array_keys_exists($str,$arr)
2、DNS協議怎么工作的?
DNS是應用層協議 ,實現ip與域名的映射,將域名轉成對應的IP地址。
3、怎樣判斷一個數組是否為空?
count($arr)和empty($arr)
4、打開文件的函數是什么?權限該怎么設置?
打開文件:fopen($file,w/w+/r/r+/a/a+)
fread()讀取打開的文件,fclose()關閉打開的文件。
5、PHP中的最大數?如果想要存儲一個比這更大的數,該怎么處理?
輸出PHP_INT_MAX即為最大的數。可以用字符串存儲
6、XSS攻擊
跨站腳本攻擊,指web網頁中被植入惡意js代碼。
如何防止:過濾js代碼 使用htmlspecialchars()函數轉義(將特殊的html字符轉換為普通字符)。使用csrf_token 指令驗簽。
7、什么是SQL注入?如何防止?
指把sql命令插入到web表單提交或輸入域名或者頁面請求的查詢的字符串。
防止:使用htmlspecialchars()函數轉義(將特殊的html字符轉換為普通字符)
addslashes()函數
mysqli預處理
php.ini中magic_quotes_gpc = On 默認是off ,開啟為on
8、數據庫優化
1,表設計要規范,符合三范式
2,選擇合適的字段屬性,盡量設為not null
3,使用連接查詢(left join/right join/inner join)代替子查詢,少使用select * 和like通配符。
4,建立索引,加快查詢速度
5,事務處理,避免大事務操作
6,鎖定表(維護數據的完整性)
7,使用外鍵(保證數據的關聯性)
9、redis
Nosql產品,非關系型數據庫
特點:內存數據庫,速度快,讀寫性能很好,可以持久化(AOF BDF)
支持事務,要么全做 要么全不做
支持的數據類型:string list set hash(符合ASSII二進制的數據)
支持讀寫分離
10、apache怎么跑php的?
apache中加載php模塊,添加apache需要處理的文件類型(AddType application/x-httpd-php .php)
11、PHP中的數據類型有哪些?
三大類:簡單型,復雜型,特殊型
八小類:整型,浮點型,布爾型,字符串型,數組型,資源型,對象型,空型
12、jquery如何實現跨站獲取數據?
通過jquery+ajax進行跨域,其實是采用jsonp(json with padding)
13、apache與nginx
nginx的優點:輕量級,抗並發,nainx處理請求時異步非阻塞 而apache是阻塞型
在高並發下nginx能保持低資源低消耗高性能
負載均衡
apache的優點:超穩定 bug少 模塊多 rewrite強大
14、mysql與mysqli
mysqli連接是永久連接,而MySQL是非永久連接。
mysql連接:每當第二次使用的時候,都會重新打開一個新的進程。
mysqli連接:一直都只使用同一個進程
好處:mysqli可以很大程度的減輕服務器端壓力
總結:使用mysqli更好
15、怎樣實現項目中對mysql的操作連接
$link = mysqli_connect("localhost","root","root","dbname");
16、你理解的資源型數據是什么?
資源類型是對外部資源的引用,通過專門的函數來建立句柄。
最常見的有數據庫連接,打開文件等.
