【智力部分】(20分)
1.有一種細菌,經過一分鐘分裂為2個,再過一分鐘,分裂為4個,這樣,將一個細菌放在一個瓶子里面,一個小時后瓶子被細菌充滿了,現在假設一開始放入瓶中的為兩個細菌,那么到充滿瓶子要多長的時間?(10分)
59分鐘
一個細菌的時候是2的60次方個細菌才把瓶子填滿,兩個細菌開始則是2*2的59次方,故結果是59分鐘
2.一只蝸牛從井底爬到井口,每天白天蝸牛要睡覺,晚上才出來活動,一個晚上蝸牛可以向上爬3尺,但是白天睡覺的時候會往下滑2尺,井深10尺,問蝸牛幾天可以爬出來?(10分)
8天或者7天加一夜
7天爬7尺,第七天晚上向上爬了3尺,已經爬出了井口,所以白天就沒有再下滑2尺的動作
【專業部分】(75分)
3.談談你對MVC的認識,介紹幾種目前比較流行的MVC框架?(5分)
由模型(model),視圖(view),控制器(controller)完成的應用程式
由模型發出要實作的功能到控制器,控制器接收組織功能傳遞給視圖;
BroPHP,ThinkPHP,Zend,Yii
4.html表單中 GET與POST提交方法的區別?(5分)
a)GET是發送請求HTTP協議通過url引數傳遞進行接收,而POST是物體資料,可以通過表單提交大量資訊.
b)GET傳參會有大小的限制,因瀏覽器和作業系統的不同而不同,而POST傳參理論上不受限,但是一般會人為設定,
c)POST安全性比GET高
5.請簡述SESSION與COOKIE的區別?(5分)
a)session:儲存用戶訪問的全域唯一變數,存盤在服務器上的php指定的目錄中的(session_dir)的位置進行的存放
cookie:用來存盤連續訪問一個頁面時所使用,是存盤在客戶端,對于Cookie來說是存盤在用戶WIN的Temp目錄中的,
6.求兩個日期的引數,例如2007-2-5 ~ 2007-3-6 的日期引數,(5分)
<?php
function get_days($date1,$date2){
$time1=strtotime($date1);
$time2=strtotime($date2);
return abs($time1-$time2)/86400;
}
echo get_days('2007-2-5','2007-3-6');
?>
7.寫出如下程式的輸出結果 (5分)
aaaaaa
8.在空表News中,欄位ID為自增主鍵,批量插入17條記錄之后,發現最后三條資料有誤,洗掉此三條記錄后重啟Mysql資料庫,再重新插入三條記錄,請問最后一條記錄的ID值是多少?(5分)
如果是innodb型別結果是17
如果是myisam型別,結果是20
9.至少寫出一種驗證139開頭的11位手機號碼的正則運算式,(5分)
‘/^139[0-9]{8}$/x’
‘/^139\d{8}/x’
10.請寫一個函式,實作以下功能:
字串“open_door” 轉換成 “OpenDoor”、”make_by_id” 轉換成 ”MakeById”,(10分)
function diversion($str){
$arr=explode('_',$str);
foreach($arr as $v){
$res.=ucfirst($v);
}
return $res;
}
echo diversion('open_door');
echo diversion('make_by_id');
11.請寫一個函式將1234567890轉換成1,234,567,890 每3位用逗號隔開的形式,(10分)
Echo Number_format(1234567890);
12.有A(id,sex,par,c1,c2),B(id,age,c1,c2)兩張表,其中A.id與B.id關聯,現在要求寫一條SQL陳述句,將B中age>50的記錄的c1、c2更新到A表中統一記錄中的c1、c2欄位中,(10分)
Update A,B set A.c1=B.c1 ,A.c2=B.c2 where A.id=B.id and B.age>50;
13.請用php寫出以下程式:假設網路中有一臺服務器192.168.1.101,開放埠8899進行偵聽,請用php的socket相關知識,寫出一個簡易的client,連接到server,并發送字串”hello server!”,程式僅對連接的成功和失敗進行簡易錯誤判斷和處理即可,(10分)
//***客戶端代碼 需要準備服務端代碼才可執行下面
//***準備服務端埠
$service_port = 8899;
//***準備主機地址
$address = '192.168.1.101';
//***創建socket
//***協議***AF_INET 這是大多數用來產生socket的協議,使用TCP或UDP來傳輸,用在IPv4的地址
//***socket型別***SOCK_STREAM 這個協議是按照順序的、可靠的、資料完整的基于位元組流的連接,這是一個使用最多的socket型別,這個socket是使用TCP來進行傳輸,
//***公共協議***SOL_TCP 和 getprotobyname(“tcp”)函式一樣的效果 使用公共協議名字來獲取一個協議型別,在這里使用的是TCP公共協議,如果你想使用UDP或者ICMP協議,那么你應該把getprotobyname()函式的引數改為“udp”或“icmp”,
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//***如果$socket創建失敗 獲取socket失敗資訊提示
if ($socket === false) {
echo "socket創建失敗,原因: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "socket創建成功<br />";
}
//***開始socket連接
//***$socket 已創建好的socket資源
//***$address 主機地址
//***$service_port 服務端埠
$result = socket_connect($socket, $address, $service_port);
//***判斷是否連接成功
if($result === false) {
echo "socket連接失敗: ({$result}) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "socket連接成功<br />";
}
//***準備發送資料
$in='hello server!';
//***輸出內容初始化
$out = "";
//***寫資料到socket快取
socket_write($socket, $in, strlen($in));
//***讀取指定長度的socket資料
//***$socket 已創建好的socket資源
//***8192 讀取內容的指定長度
while ($out = socket_read($socket, 8192)) {
//***輸出讀取到的內容
echo $out;
}
//***關閉socket連接
socket_close($socket);
【Linux知識】(15分)
14.如何實作每天0點鐘重新啟動服務器,(5分)
cd /opt/
vim re_server.txt
0 0 * * * service httpd restart
crontab re_server.txt
/sbin/service crond restart
15.當前目錄下有一個檔案為 showme.sh , 如何修改檔案,將其指定為使用 /bin/bash 運行(5分),如何修改其權限為所有用戶可讀寫,所有用戶可執行,(5分)
16.當前目錄下有一個檔案為 showme.sh,如何修改其所有人為root,(5分)
chown root:root showme.sh
【附加部分】(30分)
1.使用thinkphp在控制器(Action)中傳遞一個一維陣列到視圖(Tpl),并將陣列回圈顯示在前臺頁面,請簡要的寫出前后臺的主要代碼,(10分)
以BroPHP為例:
On.class.php://控制器
Class one{
Function two(){
$arr=array(1,2,3,4,5,6);
$this->assign(‘arr’,$arr);
}
}
Two.htm://模版檔案 視圖
<{foreach $arr as $v}>
<{$v@key}>->
<{$v}><br />
<{/foreach}>
2.請用php撰寫程式,讀取出www.baidu.com的首頁的網頁內容(僅html),并存入字串 $str.(10分)
$str=file_get_contents(‘http://www.baidu.com’);
3 請用php將上題中讀取出的網頁內容的<title>標簽的值決議出來,(10分)
$zz=’/<title>(.*?)<\/title>/ixums’;
preg_match_all($zz,$str,$res);
var_dump($res);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/346880.html
標籤:其他
