一、
1、有如下html:
1)用js取得________方法取得該物件;
2)用________屬性取得屬性title的屬性值;
3)用________方法取得屬性sina_title的屬性值;
(1) document.getelementbyid('img1');
(2) document.getelementbyid('img1').getattribute('title');
(3) document.getelementbyid('img1').getattribute('sina_title');
2、php中對陣列序列化和反序列化的函式分別是______和_______;
serialize,upserialize
3、rawurlencode和urlencode函式的區別是__________________;
rawurlencode會將空格轉換為+,urlencode會把空格轉換為%20
4、php中過濾html的函式是_______,轉義的函式是____________;
strip_tags,htmlspecialchars
5、寫出用正則把html中的js指令碼過濾掉;
preg_replace('//is','',$htmlcode);
6、sql中left join的含義是______________;
如果有乙個表tl_user儲存學生id和名字name,另外乙個表tl_score儲存學生id、科目subject和成績score(有的學生沒有考試成績),寫出sql語句列印出學生名字和各科總成績;
左聯接,首先將左表中所有資料取出,然後再將滿足where條件中的右表資料取出來。當此行的資料並不滿足where條件,則返回空.
select tu.name,sum(ts.score) as totalscore from tl.user left join tl_score on tl.uid = ts.uid;
7、寫出三個呼叫系統命令的函式;
system,passthru,exec
8、josn處理陣列的函式是;
json_encode,json_decode
9、php中判斷變數是否被設定是函式是_______;判斷是否為空的是___________;
isset,empty
10、error_reporting("e_all")和ini_set("display_errors", "on")的區別_________;
前者是設定錯誤顯示等級,e_all代表提示全部錯誤(包括notice,warnning和error)。後者是設定讓php顯示錯誤,在關於錯誤顯示控制中,後者的優先順序最高。
11、php寫出顯示客戶端ip的預定義變數________;提供來路url的是__________;
12、php把utf-8轉換成gbk的函式是___________;
iconv('utf-8','gbk',$str);
13、php中分割字串成陣列的函式__________,連線數組成字串的是_______;
explode,implode
14、php中類的靜態方法怎麼使用_____________________________________;
在類外部,使用:類名後面跟雙冒號,再後面是方法名,類似classname::staticfucntion(),由於靜態方法不屬於某個物件,而是隸屬於整個類,所以要用類名來呼叫它。
二、
1、如下錯誤:mysql server not go away,的原因是什麼?(大概這是這樣)
應該是mysql has gone away吧?
一般情況下是由於max_allowed_packet設定的值過小導致的,max_allowed_packet用來控制緩衝區的包大小,有時在匯入資料的時候,此值過小就容易造成緩衝區容量不夠。將my.ini或my.cnf中的此值設定大一些即可解決。
還有一種可能是連線資料庫時使用了單例模式,多次運算元據庫但都使用的是同乙個連線,由於mysql處理每個執行緒也是佇列模式,當前乙個操作還沒執行完畢並且間隔小於wait_timeout所設定的值時就容易出現此問題,解決辦法是將wait_timeout的值設定大一些。
2、mysql的靜態表和動態表的區別,myisam和innodb的區別.
靜態表是當乙個表中沒有採用varchar,blob,text這種可變長字段時,此表就是靜態表,反之,如果乙個表內存在至少乙個可變長字段時,或者如果乙個表被用row_format=dynamic選項來建立,此表就為動態表。
myisam與innodb的區別在於,myisam不支援事務處理,因為其不用去做commit操作,所以操作起來速度會比innodb較快。innodb在安全性方面要好於myisam,由於支援事務處理,insert,update,delete,select。等操作在預設autocommit=0時,會將每乙個操作都當作乙個事務,可以進行rollback。如果autocommit=1時,每乙個操作後它都會自動提交此事務,會造成執行的效率很慢,大概會比myisam慢10倍。
3、$a = 1; $b = & $a;
unset($a),$b是否還是1,為什麼?
unset($b),$a是否還是1,為什麼?
都等於1。
在php中,引用賦值不同於指標的感念,他只是將另乙個變數名指向了某個記憶體位址。此題中:$b = &$a;只是將$b這個名字也指向了$a變數所指向的記憶體位址。unset時只是釋放了這個名字的指向,並沒有釋放記憶體中的值。另一方面講unset($a),其實也並未真正立刻釋放記憶體中的值,也只是釋放了這個名字的指向而已,該函式只有在變數值所佔空間超過256位元組長的時候才會釋放記憶體,並且只有當指向該值的所有變數(比如有引用變數指向該值)都被銷毀後,位址才會被釋放。
三、
1、寫出至少三個函式,取檔名的字尾,如檔案'/as/image/bc.jpg',得到 jpg或者.jpg。
function mygetextname1( $path )
function mygetextname2( $path )
function mygetextname3( $path )
2、寫乙個函式,算出兩個檔案的相對路徑如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 計算出 $b 相對於 $a 的相路徑。
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
//求$b相對於$a的相對路徑
function getrelativelypath($a,$b)
3、用二分法(也叫折半查詢法)查詢某元素,對像可以是有序陣列。
//二分法查詢乙個陣列中是否存在某值
function binsearchwitharray($array,$searchvalue)
elseif($searchvalue < $array[$mid])
else
}return $searchvalue.'沒找到';}
$time = 1;
//要查詢的陣列
$array = array(1,5,8,101,13,19,25,50,60,199,35);
//要查詢的值
$searchvalue = 13;
//對陣列排序,二分法的關鍵
sort($array);
echo '要查詢的值為:',$searchvalue,'
';echo binsearchwitharray($array,$searchvalue);
這些題說實話不難,但我還是必須承認有些題我查了資料,因為很多函式平時不借助ide根本想不起來怎麼寫,有些概念以前即使知道並理解,但好長時間不涉及卻會漸漸淡忘,比如按引用傳遞那個。
面試時都是讓拿筆寫,我相信沒幾個人能用筆在短時間內把這些東西都寫出來,尤其是後面的寫**的,需要反覆修改,因為你在思考的過程中邏輯肯定會出現些漏洞,需要將**執行下才能明白**出了問題,用筆寫真的是扯淡。就算在計算機上寫,後面的一些**我還寫了2,3個小時呢。
各位都看看我的答案,有有沒有疏漏或錯誤的地方,我並不是覺得考這些東西完全沒有價值,只是覺得面試時作為筆試題很不妥。希望各位在各個公司參與面試別人的朋友能參考下我的意見,換一種更加合理的考核方式。
幾個面試題
1 公司裡面有1001個員工,現在要在公司裡面找到最好的羽毛球選手,也就是第一名,每個人都必須參賽,問至少要比賽多少次才能夠找到最好的羽毛球員工 2 現在有100個燈泡,每個燈泡都是關著的,第一趟把所有的燈泡燈泡開啟,第二趟把偶數字的燈泡制反 也就是開了的關掉,關了的開啟 第三趟讓第3,6,9.的燈...
幾個面試題
面試的時候被問到的幾個c 的題目 1.空類的大小 答 0 2.空類自帶幾個函式 答 1.建構函式 2.析構函式 3.拷貝構造 4.賦值操作符 5.取位址操作符 6.const取位址 3.父類的析構函式為什麼要是虛函式 父類指標指向乙個子類物件,析構這個父類指標時,如析構函式不是虛函式,將不會析構子物...
幾個面試題
1.請找出今天氣溫比昨天高的天氣記錄 天氣溫度表 id int date date temperature 120170101212 20170102203 20170103254 2017010422 輸出值 我的答案,當時寫不出來 select from weather w2 where w2....