1.輸出Mozilla/4.0(compatible;MISIE5.01;Window NT 5.0)是,可能輸出的語句是?javascript
A:$_SERVER['HTTP_USER_AGENT_TYPE'];php
B: $_SERVER['HTTP_USER_AGENT'];html
C: $_SERVER['USER_ACENT'];前端
D: $_SERVER['AGENT'];java
2.下面功能php沒法實現的是?mysql
A: 服務端腳本運行;linux
B: 命令行腳本運行;nginx
C: 客戶端圖形界面(GUI)程序;git
D: 瀏覽器執行DOM操做web
3.下面說法不正確的是?
A: PHP有四種標量類型:布爾型,整型,浮點型,字符串;
B: 浮點型與雙精度是同一種類型
C: 複合類型包括:數組,對象,資源;
D: 僞類型:混合型,數字型,回調;
4.執行代碼後
<?php echo function_exists('print'); ?>
輸出的結果是?
A: 空
B: true
C: false
D: FALSE
5.下面不是PHP語法的組成部分的函數是?
A: array
B: eval
C: each
D: list
6.執行下面代碼的結果是什麼?
<?php $bool = true; echo gettype($bool); echo is_string($bool); ?>
A: boolean
B: boolean0
C: booleanFalse
D: booleanfalse
7.寫出下面程序代碼執行結果
<?php $a = 12; $b = 012; $c = 0x12; echo $a,"\n",$b,"\n",$c; ?>
A: 22
B: 10
C: 6
D: 12
8下面代碼的執行結果是?
<?php echo 1+2+"3+5+6"; ?>
A: 0
B: 3
C: 6
D: "33+4+5"
9.下面代碼加入下面那個函數後返回true?
return ? == 'A';
A: ord(65)
B: chr(65)
C: 65+"
D: "65+
10.下面代碼輸出正確的是?
<?php $a = array(1=>5,5=>8,22,2=>'8',81); echo $a[7]; echo $a[6]; echo $a[3]; ?>
A: 空 22 81
B: 空 81 22
C: 81 22 空
D: 空 空 空
11.下面代碼的輸出結果是?
<?php $a[bar] = 'hello'; echo $a[bar]; echo $a['bar']; ?>
A: hello
B: 空空
C: 報錯
D: hello hello
12.寫出下面代碼的結果:
<?php echo 1>>0; echo 2>>1; echo 3<<2; ?>
A: 012
B: 106
C: 1112
D: 123
13.下面代碼執行結果?
<?php for($i=1;$i<10;$i++){ print $i; } ?>
A: 0123456789
B: 01234567890
C: 無輸出
D: 死循環
14.下面對於echo,print 的描述正確的是?
A: echo,print均可以打印多個參數
B: print 能夠打印多個參數,echo不能夠
C: echo能夠打印多個參數,print不能夠
D: echo,print 都不能夠打印多個參數
15.對於如下的代碼
<?php $fruits = array('strawberry'=>'red','banana'=>'yellow'); ?>
可以正確獲得結果'yellow' 的代碼是?
A: echo "A banana is {$fruits['banana']}";
B: echo "A banana is $fruits['banana']";
C: echo "A banana is {$fruits[banana]}";
D: echo "A banana is $fruits[banana]";
16.下面代碼執行結果是?
<?php function change(){ static $i = 0; $i++; return $i; } print change(); print change(); ?>
正確答案:1,2
17.
<?php $foo = 'test'; $bar = <<<EOT $foo bar EOT; echo $bar; ?>
上面語句輸出的結果是?
A: $foo bar;
B: 'EOT' $foo bar EOT
C: test bar
D: 'EOT' test bar EOT
18.
$a = 3; $b = 4; if($a || $b = 5){ echo 'tudou'; }
$b的值是?
A: 4;
B: 5
C: 3;
D: false;
19.下面那個表達式不能將兩個字符串$s1和$s2串聯成一個單獨的字符串?
A: $s1+$s2
B: "{$s1}{$s2}"
C: $s1.$s2
D: implode(",array($s1,$s2))
E: 以上方法都能實現
20.下面的腳本運行之後,$array數組所包含的值是什麼?
<?php $array = array('1','1'); foreach($array as $k => $v){ $v = 2; } ?>
A: array('2','2')
B: array('1','1')
C: array(2,2)
D: array(Null,Null)
21.cron後臺常駐程序(daemon)用於?
A: 負責文件在網絡中共享
B: 管理打印子系統Manages theprinting subsystem
C: 跟蹤管理系統信息和錯誤
D: 管理系統平常任務的調度(scheduing)
22.怎麼了解您在當前的目錄下還有多大空間?
A: Use df
B: Use du /
C: Use du .
D: Use df .
23.有一個備份程序mybackup,須要在週一至週五下午一點和晚上八點各運行次,下面那一條crontab的項能夠完成工做?
A: 0 13,20 * * 1,5 mybackup
B: 0 13,20 * * 1,2,3,4,5 mybackup
C: *13,20 * * 1,2,3,4,5, mybackup
D: 0 13,20 1,5 * * mybackup
24.下面那條命令能夠吧f1.txt複製爲f2.txt ?
A: cp f1.txt f2.txt
B: cat f1.txt|f2.txt
C: cat f1.txt||f2.txt
D: copy f1.txt|f2.txt
25.使用命令能夠查看linux的啓動信息?
A: mesg -d
B: dmesg
C: cat /etc/mesg
D: cat /var/mesg
26.在vi 中退出不保存的命令是?
A: :qt
B: :r
C: :wq
D: :q!
27.下面那個選項沒有將john添加到users數組中?
A: $users[] = 'john';
B: array_add($users,'john');
C: array_push($users,'john');
D: $users ||= 'john';[a,c]
28.下列不屬於Javascript語法關鍵字/保留字的是?
A: var
B: $
C: functiom
D: while
29.下列不屬於JavaScript DOM事件的是?
A: onclick
B: onkeydown
C: onbodyload
D: onmouseover
30.下列PHP函數中不能直接在頁面上輸出字符串的函數是?
A: echo
B: sprintf
C: printf
31.在PHP中,'+'操做符的功能不包括
A: 字符串鏈接
B: 數組數據合併
C: 變量數據相加
32.用php獲取當前時間並打印,打印格式爲2006-5-10 22:21:21
echo date('Y-n-m H:i:s');
33,字符串轉數組,數組轉字符串,字符串截取,字符串替換,字符串查找的函數分別是什麼?
字符串轉數組函數:
str_split()
explode()
數組轉字符串
join()
implode()
字符串截取
substr()
mb_substr()
字符串替換
str_replace()
preg_replace()
字符串查找
preg_match()
preg_match_all()
strops()
strrops()
34.解釋一下php類中pretect,public,private,interface,abstract,final,static的含義
pretect:受保護的
public:公有的
private:私有的
interface:接口
abstract:抽象類或者抽象方法
final:最終版本的類或者方法
static:靜態屬性或者方法
35.如何把字符串'08/26/2004'替換成'2004-08-26'?
$date = '08/26/2004'; echo preg_replace('/(\d+)\/(\d+)\/(\d+)/',$3-$1-$2,$date);
36.從表login中選出name字段包含admin的前10條結果全部信息的sql語句
select * from login where name '%admin%' limit 10;
37.解釋左鏈接,右鏈接,內鏈接,索引:
左鏈接: left join on
左鏈接是以左邊的表爲主表,先輸出左邊表的全部數據,右邊匹配輸出,不匹配的爲null
右鏈接:right join on
右鏈接是以右邊的表爲主表,先輸出右邊表的全部數據,左邊匹配輸出,不匹配的爲null
內鏈接:inner join on
內鏈接必須同時符合條件的內容纔會輸出,相等於普通的多表查詢
38.寫一個函數。儘量高效的。從一個標準的url裏取出文件的擴展名,已知url以下: $url = 'http://www.baidu.com/web/index.php?id=4&name=lisi';
$arr = parse_url($url); $arr2 = path_info($arr['path']); $ext = $arr2['extension'];
39.解決網站服務器大流量高併發的問題:
把apache服務器(3000)換成nginx服務器(30000)
修改Apache或者nginx的默認配置,把其中的併發數調到最高
多增長几臺服務器同時對用戶提供服務(負載均衡技術)
減小客戶在服務器上的連接時間斷開時間
php代碼的優化
數據緩存(文件緩存,或者內存緩存redis,memcache等)
40.如何設計或者配置mysql ,才能達到高效的目的
服務器優化:max_connections = 1500 併發連接數調到最大
wait_timeout = 10 連接關閉時間
表優化:字段索引:主鍵索引,惟一索引,普通索引
負載均衡(mysql主從複製)
41.如何進行防sql注入
表單儘可能使用post提交
使用HTTP_REFERER檢查源文件
開啓addslashes在特殊符號前加\
使用htmlspecialchars對字符進行轉義
42.防止盜鏈
使用HTTP_REFERER檢查源文件
43.用PHP寫出一個安全的用戶登陸系統須要注意哪些方面?
表單使用post提交
限制錯誤登陸次數
使用驗證碼防止機器破解
同時作先後端表單驗證
44.使用過哪些版本控制工具?
svn
git
45.什麼是面向對象?主要特徵是什麼?
面向對象是程序的一種設計方式,它利用提升程序的重用性,使程序結構更加清晰
主要特徵:封裝,繼承,多態
46.HTTP狀態中302,403,500代碼的含義:
302重定向,403服務器拒絕訪問,500服務器內部錯誤
47.linux下創建壓縮包,解壓縮包的命令是?
tar czf test.tar.gz test.php
tar xzf test.tar.gz
48.myisam和innodb的基本區別:
在增刪改查方面,myisam要優於innodb表引擎,當數據量特別大時,他們的速度相差不大,
innodb支持事務,存儲過程,行鎖等等
49.isset()和empty()的區別:
isset 是判斷變量是否存在,是否認義
empty 是判斷變量是是否爲空
50.如何在頁面之間傳遞變量(至少兩種)
get,post,ajax,curl,cookie,session
51.寫出匹配url的正則表達式:
$url = "wwww.baidu.com"; preg_match('/^(\w+\.)?\w+\.\w+$/',$url);
52.請寫出常見的排序算法,並用PHP實現冒泡排序,將數組$a = array()按照從小到大的方式進行排序:
冒泡排序,快速排序
function mysort($arr){ for($i=0;$i<count($arr)-1;$i++){ for($j=0;$j<count($arr)-$i-1;$j++){ if($arr[$i]>$arr[$j+1]){ $x = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $x; } } } return $arr }
53.在數據庫test中的一個表student,字段是name,class,score,分別表明姓名,所在班級,分數
查出每一個班級中的學生,按照成績降序排序
select * from student order by class asc,score desc;
查出每一個班的及格人數和不及格人數,格式爲:class,及格人數,不及格人數
select class,sum(if(score>=60,1,0)) jige,sum(if(score<60,1,0)) bujige from student group by class;
54.請寫出你認爲語言中的高級函數
array_filter()
array_map()
array_multisort()
array_count_values()
array_splice()
htmlspecialchars()
55.表結構入下
名稱 | 類型 |
uid | int |
name | varchar |
age | tinyint |
需求:
增長一個字段性別sex,寫出修改語句
alter table user add sex varchar(10) not null default '男';
查詢出年齡介於20到30歲之間的用戶
select uid,name,age from user where age>20 && age<30;
若是提個web頻繁的訪問查詢,上題的查詢如何優化?
給age字段添加索引
create index in_age on user(age);
56.web開發的遇到的問題有哪些?
功能需求分析
數據庫設計
sql語句的優化
前端編寫js特效
57.求兩個日期的差數,例如:2007-2-5~2007-3-6的日期差數
$s = strtotime('2007-3-6') - strtotime('2007-2-5');//秒差 echo $s/86400;//相差天數
58.寫出以下程序運行結果
<?php $test = 'hello'; $abc = &$test; unset($test); echo $abc; ?>
正確答案:hello
59.在空表news中,字段id爲自增主鍵,批量插入17條記錄後,發現最後三條數據有誤,刪除此三條數據後重啓mysql數據庫,再從新插入三條記錄,請問最後一條記錄值的id是多少?
myisam 引擎 18
innodb 引擎 20
60.至少寫出一種驗證139開頭的11位手機號碼的正則表達式:
$str = "13911111111"; preg_match('/^139\d{8}$/',$str);
61.請寫出一個函數,實現以下功能:
字符串"open_door" 轉換爲 "OpenDoor","make_id"轉換爲"MakeId"
<?php $str = "make_hello"; $arr = explode('_',$str); $str2 = ''; foreach($arr as $val){ $str2.=ucfirst($val); } echo $str2; ?>
62.請寫一個函數將1234567890轉成1,234,567,890,每3位用逗號隔開的形式
<?php $str = "1234567890"; $str2 = strrev($str);//翻轉字符串 $arr = str_split($str2,3); $str3 = join(',',$arr); $str4 = strrev($str3); echo $str4; //還有一個函數直接能搞定: $str = "1234567890"; echo number_format($str); ?>
63.有A(id,sex,par,c1,c2),B(id,age,c1,c2)兩張表,其中A.id與B.id關聯,如今要求寫出一條sql語句,將B中的age>50的記錄的c1,c2更新到A表中統一記錄中的c1,c2字段中:
update A,B set A.c1 = B.c1,A.c2 = B.c2 where A.id = B.id and B.age>50;
64.如何實現天天的0點鐘重啓linux服務器?
crontab -e
00 00 * * * /sbin/init 6
65.當前目錄下有一個文件showdown.sh,如何修改文件,將其指定爲使用/bin/bash運行,如何修改其權限爲全部用戶可讀寫,全部用戶可執行?
vim showdown.sh #!/bin/bash chmod 777 showdown.sh
66.當前目錄下有一個文件爲showdown.sh,如何修改其全部人爲root
chown root showdown.sh chown root:root showdown.sh//修改全部人爲root,而且修改所屬組爲root
67.請用用php程序,編寫讀取www.baidu.com 的首頁的內容,並將其存入字符串$str中
68.請用php將上題中讀取出來的網頁內容的<title>標籤的值解析出來
preg_match('/<title>(.*)<\/title>/',$str,$arr);
69.經過php函數的方式對目錄進行遍歷,寫出程序:
<?php function delDir($dir){ $files = scandir($dir); foreach($files as $file){ if($file!='.' && $file!='..'){ $path = $dir.'/'.$file; if(is_dir($path)){ delDir($path); }else{ unlink($path); } } } rmdir($dir); } ?>
70.什麼是數據庫索引,主鍵索引,惟一索引的區別,索引的缺點是什麼?
數據庫索引是給數據庫中的每張表創建索引,便於提升查詢檢索效率
主鍵索引是給每張表的主鍵設置索引
惟一索引是給每張表的惟一值字段設置索引
索引的缺點是創建索引須要增長存儲空間,空間利用率低,而且當數據發生變化時改索引資源消耗比較大
71.經過js 實現前進和後退操做:
<a href="javascript:Window.history.go(1)">前進</a> <a href="javascript:Window.history.go(-1)">後退</a>
72.寫出程序運行結果:
<?php $a = 0; $b = 0; if($a=3 || $b = 3){ $a++; $b++; } echo $a.",".$b; ?>
正確答案是:1,1
<?php $a = 0; $b = 0; if($a = 4 | $b = 3){ $a++; $b++; } echo $a.",".$b; ?> 正確答案是:8,4(未或運算)
73.寫出下列代碼的輸出結果?
<?php function myfunc($argument){ echo $argument+10; } $variable = 10; echo "myfunc($variable)=".myfunc($variable); ?>
正確答案是:10myfunc(10)=;
74.請用盡量少的語句實現對輸出email地址進行驗證功能:
$email = "test@qq.com"; preg_match('/^\w+@\w+\.\w+$/',$email,$arr);
75.如何判斷sql語句的運行效率,如何優化一個查詢sql
desc select * from table; explain select * from table; 給查詢條件增長索引
76.apache默認使用的是進程管理仍是線程管理?
apache默認使用的是進程管理
77.實現中文字符串截取無亂碼的方法是?
mb_substr();
78.用php寫出顯示客戶端ip和服務端的ip代碼:
$_SERVER['REMOTE_ADDR']
$_SERVER['SERVER_ADDR']
79.在http1.0中,狀態碼爲401的含義是?若是返回"找不到文件"的提示,則用header函數,其語句爲?
401表明未被受權
header("HTTP/1.0 404 Not Found");
80.在php中error_reporting這個函數的做用是?
設置錯誤級別與錯誤信息回報
81.簡述如何獲得當前執行腳本路徑,包括所獲得的參數?
$_SERVER['REQUEST_URI'];
82.mysql_fetch_row和mysql_fetch_array之間的區別?
mysql_fetch_row獲取一個索引數組
mysql_fetch_assoc獲取一個關聯數組
83.下面程序會輸出什麼?
<?php $num = 10; function multiply(){ $num = $num*10; } multiply(); echo $num; ?> 正確答案是:10
84.寫出下面程序的輸出結果?
<?php $b = 201; $c = 40; $a = $b>$c:4:5; echo $a; ?> 正確答案是:4
85.$a = 'abcdef';請取出$a的值並打印第一個字母:
echo $a{0};
86.請寫出php5的權限修飾符
public 公有的
private 私有的
protected 受保護的
87.ftp://pub.foo.bar.com:2121/incoming/rls.sfv請給出這個url的各部分的含義
ftp:// 是協議
pub.foo.bar.com 是域名
2121 是端口
/incoming/ 是目錄
rls.sfv 是文件
88.服務器經常使用端口?
80 http協議
21 ftp協議
22 ssh協議
53 dns協議
443 https協議
89.請寫出5條linux命令
ls
cd
pwd
mkdir
rmdir
90.請列出5個經常使用的php操做mysql函數:
mysql_connect()
mysql_query();
mysql_select_db()
mysql_fetch_assoc()
mysql_fetch_row
91.有兩張數據表,表user(id,name)記錄了用戶的id和暱稱,表article(id,uid,title,content,time)記錄了用戶發表的文章標題,內容和時間,寫一個sql語句打印出每一個用戶的暱稱及其發表的文章總數?
select user.name,count(*) from user left join article on user.id = article.id group by user.id;
92.把左鏈接中產生的null替換成"0":
select user.name,count(article.uid) from user left join article on user.id = article.uid group by user.id;
93.請寫出3個php中預約義全局變量
__LINE__
__FILE__
__FOUCTION__
94.請寫出下列代碼的執行結果
<?php $var1 = 5; $var2 = 10; function foo(&$my_var){ global $var1; $var1 +=2; $var2 = 4; $my_var +=3; return $var2; } $my_var = 5; echo foo($my_var);//4 echo $my_var;//8 echo var1;//7 echo $var2;//10 $bar = 'foo'; $my_var = 10; echo $bar($my_var);//4 ?>
95.輸出用戶的ip地址,並判斷用戶的IP地址是否在192.168.1.100-----192.168.1.150之間
$sip = ip2long('192.168.1.100'); $eip = ip2long('192.168.1.150'); $getip = ip2long('192.168.1.120'); if($getip>=$sip and $getip<=$eip){ echo 'yes'; }else{ echo 'no'; }
96.將二維數組按照name的長度進行從新排序,按照順序將id賦值(從1開始),二維數組以下:
$arr = array( array('id'=>0,'name'=>'123833'), array('id'=>0,'name'=>'aaa'), array('id'=>0,'name'=>'dfsdfsdfsdfs'), array('id'=>0,'name'=>'12245'), array('id'=>0,'name'=>'122lll') ); 實現代碼以下: foreach($arr as $val){ $arr2[] = strlen($val['name']); } array_multisort($arr2,$arr); foreach($arr as &$val2){ $val2['id'] = ++$i; } print_r($arr);
97.實現不用第三個變量交換,$a,$b的值,$a,$b的初始值本身定:
$a = "linux"; $b = "php"; $b = array($a,$b); $a = $b[1]; $b = $b[0]; echo $a;
98.用php打印前一天的日期格式爲:2006-5-10 22:22:21:
date('Y-n-d H:i:s' ,strtotime('-1 day'));
99.下面程序輸出什麼?
<?php $int_a = 5; function factorial(){ for($int_i=$int_a;$int_i>0;$int_i--){ $int_a = $int_a * $int_i; } } factorial(); echo $int_a; ?> 正確答案是:5
100.在項目開發中,須要上傳超過8M的文件時,請說明php.ini須要修改的配置項
upload_max_filesize = 8
post_max_size = 9必定要大於等於上面的那個
101.php代碼以下
<?php $data = array('a','b','c'); foreach($data as $key => $val){ $val = &$data[$key]; } ?>
問題1:程序執行時,每一次循環結束後變量$data的值是什麼?請解釋
第一次:
$data = array('a','b','c');
第二次:
$data = array('b','b','c');
第三次:
$data = array('b','c','c');
問題2:程序執行完成後,變量$data的值是什麼?請解釋
$data = array('b','c','c');