一、表單數據提交方式 POST 和 GET 的區別,URL 地址傳遞的數據最大長度是多少?
$_GET 傳參是請求 HTTP 協議經過 url 參數傳遞和接收,會在瀏覽器地址欄中看到
$_GET 傳參最多 2k 個字符
$_POST 是實體數據傳參,隱藏式的,能夠經過表單提交大量信息javascript
二、SESSION 和 COOKIE 的做用和區別,SESSION 信息的存儲方式,如何進行遍歷?
1) SESSION:存儲在服務器端, cookie:存儲在客戶端
2) 二者均可經過時間來設置時間長短
3) cookie 不安全,考慮安全性仍是用 session
4) session 保存到服務器端,若是訪問量過大,對服務器性能很影響,應使用 memcache 緩存
session
5) 單個 COOKIE 在客戶端限制是 3K,即存放的 cookie 不能超過 3K,SESSION 沒有限制
6) 禁止了 COOKIE 後 SESSION 是不能使用的,session 由於存儲在服務器端,具體路徑在
php.ini 中 session_dir 目錄中,是私有的每一個用戶產生 session 都不一樣
由於$_SESSION 是數組因此遍歷就用數組的方式遍歷!php
三、經過 PHP 函數的方式對目錄進行遍歷,寫出程序html
遞歸 java
<?php
dirs('F:\wwwroot');mysql
function dirs($path){
$path=str_replace('\\','/',$path);
$res=opendir($path);
readdir($res);
readdir($res);
while($filename=readdir($res)){
$newpath=$path.'/'.$filename;
if(is_dir($newpath)){
echo '<font color="red">目錄:</font>'.$filename.'<br />';
dirs($newpath);
}else{
echo '文件:'.$filename.'<br />';
}
}
}
?>linux
四、Linux 的目錄進行遍歷,編寫 shell 腳本
Tree 命令 //如今默認 Linux 都帶有的命令
Ls –lR test面試
五、什麼是數據庫索引,主鍵索引,惟一索引的區別,索引的缺點是什麼?
數據庫索引就是給數據庫中的每張表創建索引,便於檢索提升 select 效率
主鍵索引是給每張表的主鍵設置索引
惟一索引是給每張表的惟一值字段設置索引;sql
主鍵索引只有一個,惟一值索引能夠有無數個chrome
只要字段數據不重複均可以設置惟一值索引
索引的缺點是創建索引須要增長存儲空間,空間利用率低,而且當數據發生變化時改變索引
資源消耗較大。shell
六、數據庫設計時,常遇到的性能瓶頸有哪些,常有的解決方案?
1) 查詢速度慢 ,避免全盤掃描,由於全盤掃描會致使大量磁盤 I/O 操做 用 sphinx 來解
決
2) 讀寫過於頻繁 讀寫分離來作
3) 設置主從,並作好冗餘備份
4) 數據庫壓力過大 採用分佈式數據庫負載均衡來解決
5) memcache 緩存層
6) 連接數據庫使用 PDO,或者 mysqli 預處理緩存字段
7) 索引優化
七、編寫一個在線留言本,實現用戶的在線留言功能,留言信息存儲到數據庫?
<form method="post" action="">
<input type="text" name="usrname" />
<textarea name="main">
</textarea>
<input type="submit" name="sub"/>
</form>
八、經過 JS 建立一個當前窗口的子窗口,經過程序實現子窗口對父窗口的操做實例?
父窗體 paren.html 中內容:
<html>
<title>父窗體</title>
<head>
<script>
function demo(){
window.open('children.html','name','height=200,width=200');
}
</script>
</head>
<body onload='demo()'>
</body>
</html>
子窗體 children.html 中內容:
<html>
<title></title>
<head>
<script>
function change(){
window.opener.document.body.bgColor='red'; //控制父窗體的
背景顏色
}
</script>
</head>
<body>
<button onclick="change()">變色</button>
</body>
</html>
九、經過 JS 實現頁面的前進和後退操做?
<a href="javascript:window.history.go(1)">前進</a>
<a href="javascript:window.history.go(-1)">後退</a>
十、瀏覽器 IE 和非 IE 瀏覽器的劃分,區別是什麼?
區別是瀏覽器內核的不一樣
CSS 和 js 兼容性的不一樣
#navigator
十一、設定網站的用戶數量在千萬級,可是活躍用戶的數量只有 1%,如何經過優化數據庫提
高活躍用戶的訪問速度?
1)分表和分區
2)中間表(insert into table select * from stick where id>100
create view v_stick as select * from stick where id>100
show tables;
3)索引優化
十二、服務器在運行的過程當中,隨着用戶訪問數量的增加,如何經過優化,保證性能?若是
數據庫已經達到最優化,請設計出繼續升級的解決方案
squid->lvs|集羣->shpinx|memcache->php 靜態化(緩存)->分區|主從|一主多從(讀寫
分離)
首先能夠經過
分庫分表緩解一些負擔,
應用緩存服務器,如 MemCache 服務器,
增長主從服務器和負載均衡服務器提升網站讀取速度,
添加靜態資源服務器,存放一些靜態資源,如 CSS,Js,圖片等,
提升檢索速度能夠架設內容檢索服務器如 Shpinx,Xapian,
消息隊列服務器,架設數據庫集羣,
也能夠考慮 NoSQL,如谷歌的 BigTable,DB 鏈接池,使數據庫讀寫分離
1三、寫出程序運行的結果
<?php
$a=0;
$b=0;
If($a=3||$b=3){
$a++;
$b++;
}
Echo$a.」,」.$b;
?>
1.1(注意運算符的優先級,true++仍是1,表達式從右向左執行)
<?php
$a=0;
$b=0;
If($a=4|$b=3){
$a++;
$b++;
}
Echo$a.」,」.$b;
?>
8.4
100011
結果:
1.1
8.4
1四、實現無限級分類的數據庫設計
第一步:
create table lt_cat(
id int(11) not null auto_increment primary key,
pid int(11) not null,
path varchar(255) not null,
name varchar(50) not null
)engine=myisam default charset=utf8;
第二步: //path 中保存父級的 id
insert into lt_cat(pid,name,path) values(0,'China','0'); //id 爲 1
insert into lt_cat(pid,name,path) values(0,'American','0'); //id 爲 2
insert into lt_cat(pid,name,path) values(2,'new York','0,2'); //id 爲 3
insert into lt_cat(pid,name,path) values(1,'beijing','0,1'); //id 爲 4
insert into lt_cat(pid,name,path) values(4,'海淀','0,1,4'); //id 爲 5
insert into lt_cat(pid,name,path) values(5,'上地','0,1,4,5'); //id 爲 6
第三步:
Select name,concat(path,’,’,id) as bpath from lt_cat order by bpath;
Id name pid path
1 a 0 0
2 b 1 0-1
3 c 1 0-1
4 d 3 0-1-3
Select * from table order by concat(path,」-」,id);
2014.10.24-面試題:
寫出你認爲語言中的高級函數:
1.數組
array_filter();
array_map();
array_multisort();
array_count_values();
array_splice();
2.字符串
htmlspecialchars();
htmlspecialchars_decode();
json_encode();
json_decode();
substr_count();
pathinfo();
parse_url();
parse_str();
3.正則
preg_match_all();
preg_replace();
5.文件
file_get_contents();
file_put_contents();
scandir();
readfile();
6.畫圖
imagecreatefromjpeg();
7.cookie與session
setcookie();
session_id();
session_name();
8.數據庫操做
mysql_fetch_assoc();
last_insert_id();
smarty模板引擎中的關鍵字:
1.assign();
2.display();
3.for
4.if
5.foreach
6.volist
mysql:
1.字段管理
2.索引管理
3.增、刪、改、查
4.多表查詢
首字母大寫:
<?php
$str='hello_world';
$arr=explode('_',$str);
foreach($arr as $key=>$val){
$arr[$key]=ucfirst($val);
}
echo join('',$arr);
?>
千分位:
<?php
$str='1234567890';
$str2=strrev($str);
$arr=str_split($str2,3);
echo strrev(join(',',$arr));
?>
複習:linux任務計劃
複習:linux用戶權限
網站採集:
<?php
header('content-type:text/html;charset=utf-8');
$str=file_get_contents('http://www.baidu.com');
preg_match_all('/<title>(.*)<\/title>/',$str,$ms);
echo '<h1>'.$ms[1][0].'</h1>';
echo '<hr>';
$str=file_get_contents('http://www.qq.com');
preg_match_all('/<title>(.*)<\/title>/',$str,$ms);
echo '<h1>'.iconv('gbk','utf-8',$ms[1][0]).'</h1>';
?>
目錄遍歷:
<?php
$dir='bs';
function tree($dir){
$arr=scandir($dir);
foreach($arr as $file){
if($file!='.' && $file!='..'){
$path=$dir.'/'.$file;
if(is_dir($path)){
tree($path);
}else{
echo $path.'<br>';
}
}
}
}
tree($dir);
?>
js判斷瀏覽器類型:
info=navigator.userAgent; if(info.search(/firefox/i)>=0){ // type='firefox'; document.body.style.background='#faa'; }else if(info.search(/msie/i)>=0){ // type='ie'; document.body.style.background='#afa'; }else if(info.search(/chrome/i)>=0){ document.body.style.background='#aaf'; // type='chrome';}