1.檢測一個變量是否有設置的函數是否?是否爲空的函數是?(2分)php
檢測⼀個變量是否有設置的函數是isset()linux
檢測⼀個變量是是否爲空的函數是empty()git
2. echo(),print(),print_r()的區別(3分)redis
echo()是php語句 沒有返回值 輸出一個或多個字符串算法
print()是函數 有返回值 打印簡單類型的變量(int,stringsql
print_r()是函數 有返回值 打印複雜的類型的變量的值(數組,對象數據庫
3. 表單中 get與post提交方法的區別?數組
① 傳輸的數據量不一樣tomcat
get小,被url長度限制,效率高,安全性差,post能夠傳輸大量數據,安全
② 傳輸方式不一樣
Get是發送請求http協議經過URL參數傳遞
Post是實體數據
③ 服務器端獲取數據方式不一樣
$_GET和$_POST
④ 用途不一樣
Get主要用於頁面搜索,post用於數據的增刪改
4. session與cookie的區別?
① Cookie存放在客戶端 Session存儲在服務器端
② 安全性cookie差
③ cookie有大小限制
④ session過大服務器壓力會增大
5. 用PHP打印出前一天的時間格式是2015-8-10 22:21:21
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s', time()-24*3600);
echo '<br>';
echo date('Y-m-d H:i:s', strtotime('-1 day'));
6. 可以使HTML和PHP分離開使用的模板引擎
Smarty TagTemplate EasyTemplatePHP dttag Mustache
7. 使用哪些工具進行版本控制
Svn git cvs
8. 如何實現字符串翻轉
Strrev()函數
$str = "abcdefg";
function strrevv($str)
{
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
$showstr = strrevv($str);
echo $showstr."<br>";
9. 有一個網頁地址, 好比PHP開發資源網主頁: baidu.com, 如何獲得它的內容?
Fopen()
$readcontents = fopen("baidu.com ", "rb");
$contents = stream_get_contents($readcontents);
fclose($readcontents);
echo $contents;
File_get_contents()
10. 在PHP中error_reporting這個函數有什麼做用?
設置報錯級別
11. JS表單彈出對話框函數是?得到輸入焦點函數是?
彈出對話框: alert(),prompt(),confirm() 得到輸入焦點 focus()
12. foo()和 @ foo()之間有什麼區別
@foo() 控制錯誤輸出
13. GD庫是作什麼用的?
php處理圖形的擴展庫 驗證碼
14. 寫一個函數,可以遍歷一個文件夾下的全部文件和子文件夾
function my_scandir($dir)
{
$files = array();
if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) {
if ( $file != ".." && $file != "." ) {
if ( is_dir($dir . "/" . $file) ) {
$files[$file] = scandir($dir . "/" . $file);
}else {
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
$files=my_scandir('D:\www\moning');
print_r($files);
15. 寫出 SQL語句的格式 : 插入 ,更新 ,刪除 (4分)
表名User Name Tel Content Date
張三 13333663366 大專畢業 2006-10-11
張三 13612312331 本科畢業 2006-10-15
張四 021-55665566 中專畢業 2006-10-15
(a) 有一新記錄(小王 13254748547 高中畢業 2007-05-06)請用SQL語句新增至表中
(b) 請用sql語句把張三的時間更新成爲當前系統時間
(c) 請寫出刪除名爲張四的所有記錄
Mysql_query(「insert into `User`(name,tel,content,date) value(‘小王’, 13254748547,’ 高中畢業’,’ 2007-05-06’ )」)
Mysql_query(「update `user` set date =’」.time().」’ Where name = ‘張三’」)
Mysql_query(「delete from `user` where name=’張四’」)
16. myisam與innodb的區別
① Myisam不支持事務 innodb支持
② innodb爲行級鎖 myisam表級鎖
③ innodb不保存錶行數
④ myisam適用執行select innodb適用insert update
⑤ 物理結構不一樣 myisam存三個文件,。frm 文件存放表格定義。 數據文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引申 InnoDB 把數據和索引存放在表空間裏面
⑥ MyISAM中可使AUTO_INCREMENT類型字段創建聯合索引 InnoDB中必須包含AUTO_INCREMENT類型字段的索引
17. int 與bigint的區別
int普通大小的整數 默認10位 bigint大整數 默認20位
18. int(10)與int(11)的區別
顯示長度不一樣
19. varchar與char的區別
Char 存儲定長的類型
Varchar存儲可變長的類型
20. 數據庫設計,用戶表與登陸表分開的好處
性能和安全
21. 分佈式怎樣解決session共享問題
使用redis集中管理session
session複製
tomcat的session複製,能夠實現session共享 只需搭建tomcat集羣便可
session綁定
當用戶A第一次訪問系統時,tomcat1對其進行服務,那麼,下次訪問時仍然讓tomcat1對其進行服務
22. php __autoload機制
自動加載機制
23. 三次握手與四次揮手的過程(主要是畫圖),各個參數的含義
三次握手
第一次握手:主機A發送位碼爲syn=1,隨機產生seq number=10001的數據包到服務器,主機B由SYN=1知道,A要求創建聯機,此時狀態爲SYN_SENT;
第二次握手:主機B收到請求後要確認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=20001的包,此時狀態由LISTEN變爲SYN_RECV;
第三次握手:主機A收到後檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否爲1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到後確認seq值與ack=1則鏈接創建成功,雙方狀態ESTABLISHED。
四次揮手:
客戶端向服務器發送FIN,請求關閉,進入FIN_WAIT_1狀態。
服務端接受到FIN報文,而後須要告訴客戶端,我已經知道請求,但尚未準備好,你能夠繼續等我消息,因此服務端發送ACK。而後能夠進入CLOSE_WAIT狀態
客戶端接收到服務端數據,不作任何迴應,進入FIN_WAIT_2狀態。
服務端確認數據發送完成以後,發送FIN報文,告訴客戶端能夠關閉鏈接了,而後進入LAST_ACK狀態。
客戶端接收到FIN報文以後,進入TIME_WAIT狀態,發送ACK確認報文,若是2msl時間沒有反應則關閉鏈接。不然進行重傳。
服務端在接收到ACK以後,關閉鏈接。
24. http與https的區別,https怎樣保準安全(結合ssl)
一、https協議須要到ca申請證書,通常免費證書較少,於是須要必定費用。
二、http是超文本傳輸協議,信息是明文傳輸,https則是具備安全性的ssl加密傳輸協議。
三、http和https使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。
四、http的鏈接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
25. 寫出一個排序算法
冒泡法:
function bubbleSort($str){
$_count=count($str);
for($i=0;$i<$_count;$i++){
for($j=$i+1;$j<$_count;$j++){
if($str[$j]>$str[$i]){
$tem=$str[$j];
$str[$j]=$str[$i];
$str[$i]=$tem;
}
}
}
return $str;
}
$str=array(8,5,4,3,32,2.4,54,59,6,7,);
print_r($str);
print_r(bubbleSort($str));
快速排序法:
function qkSort($str){
$_count=count($str);
if($_count<2) return $str;
$standard=$str[0];
$_left=$_right=array();
for($i=1;$i<$_count;$i++){
if($str[$i]>$standard){
$_left[]=$str[$i];
}else{
$_right[]=$str[$i];
}
}
$_left=qkSort($_left);
$_right=qkSort($_right);
return array_merge($_left,array($standard),$_right);
}
$str=array(8,5,4,3,32,2.4,54,59,6,7,);
print_r($str);
print_r(qkSort($str));
26. 二分查找的思想
1.只適用於一組有序數,雜亂無序的數是不能使用二分法查找的
2.思想:根據你查找的數來判斷查找前半段仍是後半段
27. linux經常使用命令
ls -a 列出目錄全部文件,包含以.開始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時間排序
ls -S 以文件大小排序
ls -h 以易讀大小顯示
ls -l 除了文件名以外,還將文件的權限、全部者、文件大小等信息詳細列出來
cd [目錄名]。說明:切換當前目錄至dirName
pwd 查看當前工做目錄路徑
mkdir t 建立t文件夾
rm 刪除一個目錄中的一個或者多個文件或目錄
rmdir 刪除空目錄
mv 移動文件
cp 複製文件
find 查找文件
chmod 改變權限
tar 壓縮
df 顯示磁盤空間使用狀況
du 顯示文件佔用磁盤空狀況
free 顯示系統內存使用狀況