国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP工程師面試題+筆試題

v1 / 1156人閱讀

摘要:由于協議中沒有定義任何狀態碼,所以除非在某些試驗條件下,服務器禁止向此類客戶端發送響應。表示要完成請求,需要進一步操作。

最近在廣州找工作,大四狗,讀著三本前兩年剛升二本的學校,文科生,好像一切條件都非常不利,但我還是毅然選擇這條路——拍黃片,人不能固步自封,還是要拓展一下自己的知識面,不能只學php而不拓展視野,還是要學學python、java、前端這些
面試得有點心塞,各種因為學歷被刷,校招只投了幾個,不是被刷了簡歷就是沒勇氣投,默默告訴自己,以后一定要叫自己的兒子多考幾分!
她說我最近看起來很疲憊。
對啊因為找工作很多天睡不好了
他說還好,我們現在唯一的目標是找工作,不用考慮其他的。
是啊,就像高考那會一樣。
話不多說,下面寫一下最近所經歷的一些面試題,以后會繼續補充的

一、PHP基礎 1.對于0,空值,"=","=="等的考察

以下代碼輸出什么



輸出b,if中的空值賦值給$num,因此if條件必定為false,還有其他一些大同小異的題目,用=和==判斷for循環的,只要把握好基本的概念就行了

2.對于emptyisset概念的考察

isset()empty()函數的區別在于,前者只驗證一個值是否存在,后者在此基礎上還會檢驗它的值是否非空和非0
注:empty()只檢測變量,檢測任何非變量的東西都將導致解析錯誤
isset() 判斷一個變量是否已經設置
當設置一個變量值為0,empty() 認為這個變量同等于空,即相當于沒有設置

可以定義一個變量,設置值為"",0,null,"aaa"幾種不同情況下,用if判斷empty、isset看看結果

3.預定義變量

如:php中輸出當前腳本文件名的預定義變量是$_SERVER["PHP_SELF"]
DOCUMENT_ROOT有關。如:地址為http://baidu.com/test/kkk.php...,$_SERVER["PHP_SELF"]="/test/kkk.php"
還有一些重要的如$_SERVER["DOCUMENT_ROOT"],輸出網站所在的根目錄,如"D:/work/www"
$_SERVER["SCRIPT_FILENAME"],輸出"D:/work/www//kkk.php"
$_SERVER["HTTP_USER_AGENT"],獲取客戶端瀏覽器,操作系統等等
其他一些可以通過print_r($_SERVER)測試獲得,當然不止這些,還有其他一些預定義變量,系統常量如__FILE__也是需要稍微去看一下

4.函數、算法考察

主要考察php的原生函數,暫時分為數組函數、字符串處理函數、時間函數、文件操作函數、數據庫函數,后面再看看需不需要擴展。注意這些函數一定都要去過一遍。

(1.1)遍歷指定文件夾下的所有文件夾及所有子文件夾

確定是文件夾 —— 打開文件夾(產生dh句柄) —— 循環讀取文件夾內容(讀取句柄的內容,即為file/folder) —— 遞歸讀取上一步判斷為folder且文件夾不為"."或者".."的文件夾內容

$dir = "D:/www/project/";
 function readDirectory($dir){
    if(is_dir($dir)){        //
         if ($dh = opendir($dir)) {
             while (($file = readdir($dh)) != false) {
                 if (is_dir($dir.$file) && $file!="." && $file!="..") {
                     echo $dir.$file."
"; readDirectory($dir.$file."/"); } } closedir($dh); } } } readDirectory($dir);

?>

(1.2)遍歷指定文件夾下的所有文件及其子文件夾中的所有文件
";
                         // echo $dir.$file."
"; echo "filetype:".filetype($dir.$file)."
"; } if (is_dir($dir.$file) && $file!="." && $file!="..") { readDirectory($dir.$file."/"); } } closedir($dh); } } } readDirectory($dir); ?>
(2)寫一個方法獲取url中的文件類型

如$url = "http://www.qq.com/test.php?a=..."; 取出"php"

function getFileName($url){
    $a = explode("?", $url);
    $b = strrpos($a[0], ".");   //strrpos(被搜索字符串,要查找字符串,[查找開始的位置])  查找字符串最后一次出現的位置: 找到則返回最后一次出現的位置;未找到則返回false
    $c = substr($a[0], $b+1, 3);  //substr(被操作字符串,開始位置,[結束位置])  返回字符串的一部分
    return $c;
}
(3)接口知識的考察

eg.
用戶登錄認證,請求地址為http://www.aa.com/user.php,后...,驗證是否正確
請求參數:時間戳 Time 什么鬼參數忘了,即為param 還有一個是token,token值是Time+param的MD5加密,中間有加號
返回參數:
成功:res["ret"] = 0; res["msg"] = "success";
失敗:res["ret"] = 1; res["msg"] = "fail";
返回數據格式:json
下面是我的思路:

function valid(){
    $data = $_GET["data"];
    if(!$data){
        $res["ret"] = 1;
        $res["msg"] = "fail";
        echo json_encode($res);
    }
    $str = $data["Time"] . "+" . $data["param"];
    if($data["token"] != md5($str)){
        $res["ret"] = 1;
        $res["msg"] = "fail";
        echo json_encode($res);
    }else{
        $res["ret"] = 0;
        $res["msg"] = "success";
        echo json_encode($res);
    }
}

其實今天筆試的時候做這道題忘了怎么返回json格式的數據了,就直接用了Thinkphp的ajaxReturn,后來回來的時候查了一下才知道原來直接echo,這么簡單,框架還是為輔吧,要多寫原生。今天筆試的是一家手游公司,對數據庫操作和原生要求比較多。

5.對緩存的了解

這個是我的薄弱環節,實際項目沒操作過,打算來了解一下再跟你們說

二、數據庫知識 1.數據庫的基本增刪查改

基本的增刪改查語句,關聯語句,函數等過一遍就行,可以過一下imooc的教程
慕課網——與MySQL的零距離接觸

2.談談數據庫優化的方法

我暫時還沒有實踐過mysql的優化方式,自己在百度上看了一些方法,大概有以下的一些方法:
(1)創建表的時候避免使用NULL默認值,因為NULL對于大多數數據庫都需要進行特殊處理和索引邏輯等等。所以大多數時候不用NOT NULL,可以用特殊值01代替
(2)盡可能使用更小的字段類型,因為mysql從磁盤讀取數據之后是存到內存當中,這意味著更小的數據類型使得從磁盤讀取或者打包到內存效率會更好
(3)字符集的轉換:客戶端或者應用程序使用的字符集可能和數據庫使用的字符集不一致,需要在mysql運行過程中隱含轉化
(4)創建索引,如果一張表很大然后符合條件的值很多,那么創建索引就能帶來性能的提升。但是如果像性別,只有兩個值,就沒必要建索引,而是用enum。一張表的索引最好不超過6個,太多的話會影響Insert和Update的效率,因此要考慮刪除使用不頻繁的索引
(5)先考慮在where和order by這兩列上建立索引。盡量少在where子句中進行表達式操作、函數操作等等
(6)盡量避免使用select * ,只查詢需要用到的字段。盡量用betwwen and 代替in 和not in,也要避免在大量數據的where子句中使用or
(7)模糊查詢優化:
使用FULLTEXT全文搜索(注意前提是MyISAM存儲引擎)
FULLTEXT解析器用“ ”(空格)、“,”(逗號)“.”(點號)作為默認的單詞分隔符,因此對于不使用這些分隔符的語言如漢語來說,FULLTEXT解析器不能正確的識別單詞,對于這種情況需做額外處理。

(8)盡量滿足范式(有的情況下要用反范式)下面是三大范式的區別,也要去看一下
第一范式:數據庫表的每一列都是不可分割的原子數據項,而不能是集合,數組,記錄等非原子數據項。如果實體中的某個屬性有多個值時,必須拆分為不同的屬性

第二范式:滿足第一范式前提,當存在多個主鍵的時候,才會發生不符合第二范式的情況。比如有兩個主鍵,不能存在這樣的屬性,它只依賴于其中一個主鍵,這就是不符合第二范式

第三范式:滿足第二范式前提,如果某一屬性依賴于其他非主鍵屬性,而其他非主鍵屬性又依賴于主鍵,那么這個屬性就是間接依賴于主鍵,這被稱作傳遞依賴于主屬性。

3.談談Myisam和Innodb存儲引擎

(1)MyISAM強調性能,其執行速度比InnoDB類型更快,但不支持事務,而InnoDB提供事務支持以及外部鍵、行級鎖等高級數據庫功能
(2)如果增刪改操作比較多,或者需要事務支持,則使用Innodb,如果是讀的操作比較多,則使用Myisam
(3)MyISAM表鎖,Innodb行鎖

4.談談memcached和redis的異同

(1)memcached只能使用簡單的key-value形式進行存儲,而redis還支持hash,list,set等等。因此需要其他的數據類型支持的時候用redis更方便
(2)memcached是多核,redis是單核,所以在存儲小數據上redis性能更高,反之大數據上memcached的性能比redis要高
(3)memcached不支持持久化操作,數據不能備份,只能用于緩存使用,重啟后數據全部丟失。
redis支持持久化操作可以數據備份和數據恢復
(4)redis只能使用單線程,性能受限于cpu性能,memecached是多線程

5.有沒有接觸過事務 三、算法 1.寫一個函數判斷數組的深度

function getDepth($arr){

$max_depth = 1;
foreach($arr as $key=>$val){
    if(is_array($val)){
        $depth = getDepth($val) + 1;
        if($depth > $max_depth){
            $max_depth = $depth;
        }
    }
    
}
return $max_depth;

}

四、計算機網絡 1.說一下常見的HTTP狀態碼

(1)消息(臨時響應):1字頭。
這一類型的狀態碼,代表請求已被接受,需要繼續處理。這類響應是臨時響應,只包含狀態行和某些可選的響應頭信息,并以空行結束。由于 HTTP/1.0 協議中沒有定義任何 1xx 狀態碼,所以除非在某些試驗條件下,服務器禁止向此類客戶端發送 1xx 響應。
eg.
100: 服務器僅接收到部分請求
101: 服務器已經理解了客戶端的請求,并將通過Upgrade 消息頭通知客戶端采用不同的協議來完成這個請求。
(2)成功:2字頭。
代表請求已經被服務器所接收、理解、并接受
eg.
200: 請求成功(其后是對GET和POST請求的應答文檔。)
201: 請求被創建完成,同時新的資源被創建。
(3)重定向:3字頭。
表示要完成請求,需要進一步操作。 通常,這些狀態代碼用來重定向。
eg.
300: 多重選擇。鏈接列表。用戶可以選擇某鏈接到達目的地。
301: 頁面永久重定向
302: 頁面臨時重定向
304: 資源未被修改,服務器告訴客戶,原來緩沖的文檔還可以繼續使用
(4)請求錯誤:4字頭。
這些狀態代碼表示請求可能出錯,妨礙了服務器的處理
eg.
400: 服務器未能理解請求
401: 被請求的頁面需要用戶名和密碼。
403: 對請求頁面的訪問被禁止。(通常為沒有讀權限)
404: 服務器無法找到被請求的頁面。
408: 超出服務器等待時間
413: 由于所請求的實體的太大,服務器不會接受請求。
414: 由于url太長,服務器不會接受請求。當post請求被轉換為帶有很長的查詢信息的get請求時,就會發生這種情況。
(5)服務器錯誤:5字頭。
這些狀態代碼表示服務器在嘗試處理請求時發生內部錯誤。這些錯誤可能是服務器本身的錯誤,而不是請求出錯
eg.
500: 請求未完成。服務器遇到不可預知的情況。
502: 作為網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。
503: 服務器臨時過載或當機。
504: 網關超時。

五、前端 1.考察函數


獲取input標簽中的good屬性值所用的函數是getAttribute("good")

2.考察jquery

用ajax方法,把請求返回的參數(格式是json)填充到table中,以表格形式列出
21號下午一道筆試題,因為需要聯系上文有點麻煩,大概講一下思路吧,主要是考察對jq的ajax函數還有其他一些jq函數的熟悉程度,我直接上代碼

var html = "";
$(function(){
    $.ajax({
        type:"post",
        url:".....",
        data:(忘了發送的參數是什么了,隨便寫一下){
            a:111,
            b:222
        },
        dataType:json,
        success:function(data){
            var res = jQuery.parseJSON(data);
            for(var i=0;i" + res[i].num + ""; 
            }
            $("#table").html("" + html + "
"); }, error:function(){ } }) })
六、其他 1.遇到問題時怎么解決(錯誤日志)

我回答的時候舉了做項目的時候的例子,先縷一下思路。因為后臺這一塊,只要思路縷清了,在紙上寫出來,接下來一步一步去debug,不斷var_dump、print_r、echo,最后exit()一下,其實很好debug
后來發現面試官想問的其實不是這個,而是錯誤日志,今天特意去搜了一下,研究了一個下午終于會一點點

首先開啟錯誤日志,配置php.ini
error_reporting = E_ALL ;將會向PHP報告發生的每個錯誤,包括ERROR、NOTICE、WARNING等等
display_errors = Off ;本地測試開啟,項目上線要關閉,防止服務器重要信息泄露
log_errors = On ;開啟錯誤日志
log_errors_max_len = 1024 ;設置每個日志項的最大長度
error_log = /www/phpernote/error.log ;指定產生的錯誤報告寫入的日志文件位置

配置完之后重啟服務器即可,參考了php的異常和處理文章的一小段代碼,自己另外做了測試

錯誤代碼:[{$errno}] {$errmsg} 
".PHP_EOL; echo "錯誤行號:{$file}文件中的第 {$line} 行
".PHP_EOL; echo "PHP版本:".PHP_VERSION."(".PHP_OS.")
".PHP_EOL; $datetime = date("Y-m-d H:i:s",time()); error_log("時間:" . $datetime . "錯誤的信息:" . $errmsg . "錯誤文件所在位置:" . $_SERVER["SCRIPT_FILENAME"]); } echo $test; test(); echo "good"; ?>

下面是error.log輸出的內容

網頁輸出的內容:


手動分割線
在上面提到的內容,其實有一些可以自己去拓展看一下的,比如提到innodb和myisam,前者是使用行鎖,后者是使用表鎖,那可以去拓展一下,什么是表鎖什么事行鎖,逐漸增大自己的知識面

先更新到這,明天還得去招聘會碰壁...
2017/03/18

先寫到這里。前兩天跑了廣工招聘會,今天有一家聯系明天面試了 ,繼續去撞壁...
2017/03/20

今天基本確定offer,去一家手游公司,實習期一天100,轉正后6K,包三餐,單雙休,上午九點上班,周五周六6點下班,平時都是到8點,8~8.5小時的工作時間,上班時間有點大,不過應屆畢業生嘛,學歷也一般,其實這樣的工作強度加上薪資我覺得已經是可以接受了。hr姐姐今天跟我說其實我筆試成績一般,面試不錯。希望實習期之間表現好一點,爭取能夠轉正吧,希望各位應屆畢業生也能有一份好的offer,多去嘗試,學歷高的固然好,學歷低的也不要怕,多去跑一下招聘會宣講會,還是感謝一直鼓勵我去投其他公司的黑妹(男的),多嘗試,總會有機會的!昨天剛過完22歲生日,今天確定offer,明天五月天演唱會,一切來得剛剛好。切驕切燥,加油!
2017/03/24

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22568.html

相關文章

  • 個人建議之PHP面試的準備

    摘要:個人也建議不要滿足于自己當下所知道的,多去拓展自己,多去學新的東西。作為一個面試者來說,知識點的記憶準備為的是更好的應對面試中技術面中問到的各種問題。 你好,是我琉憶——PHP程序員面試筆試系列圖書的作者。 隨著越來越多的人開始邁入PHP開發工程師的隊列,不管是一個PHP新手還是一個有一兩年開發經驗的PHPer都不得不去面對找工作前面試這件事。 我現在以個人對面試的經歷和見解來全面的對...

    macg0406 評論0 收藏0
  • 記一道騰訊前端

    摘要:我今年月投遞了騰訊前端開發崗位,很可惜筆試題沒通過,小時內給出答案回復面試官,我的答案太過于簡單,所以后面面試官估計也就懶得回我這個菜雞來嚶嚶嚶。 我今年4月投遞了騰訊前端開發崗位,很可惜筆試題沒通過,48小時內給出答案回復面試官,我的答案太過于簡單,所以后面面試官估計也就懶得回我這個菜雞來(嚶嚶嚶)。當然以我現在的眼光來重新看那份答案,都覺得那不應該是一個一年的前端開發工作者給出的答...

    孫吉亮 評論0 收藏0
  • 如何招聘一名優秀的前端

    摘要:如何考察一個人是不是經驗豐富我們需要在問答式的面試中,對其項目經驗進行挖掘。如何設置筆試題現在網上有大量的面經的存在,對于我們面試是一個巨大的挑戰。尊重應聘者我們要尊重每一個來應聘的人,不要輕視別人,或者故意刁難別人。 時光荏苒,2個月前,我才剛總結了如何應對面試官,現在的我開始總結如何面試別人了。笑哭.png 1.我們需要什么樣的人 招聘肯定要有標準,這樣我們才能更快的找到我們需要的...

    Mr_houzi 評論0 收藏0
  • 前端面試記錄(上)

    摘要:后續前端筆試題面試題記錄下小結我想說的是在找工作期間,肯定有自己發揮不好,或者不會的問題,一定要在晚上的時候自己再學習總結一下,在一個問題上面盡量不要栽倒兩次,學到了的才是自己的。 前言 過完元宵,就到上海找了波工作,現在已經入職好了,蹭波熱點,寫一波面試記錄,內容包含筆試題和面試題,還有一些沒有寫進來,準備再開一篇,許久沒寫了,寫的確實有些慢。如果喜歡的話可以點波贊,或者關注一下,希...

    wind3110991 評論0 收藏0

發表評論

0條評論

v1

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<