摘要:一個數(shù)據(jù)庫的狀態(tài)是否正常可以從哪些指標(biāo)看出來,至少列出個答以及正在運行的進行監(jiān)控,其中一個方式就是查看運行狀態(tài)。
、一個數(shù)據(jù)庫的狀態(tài)是否正??梢詮哪男┲笜?biāo)看出來,至少列出2個
答QPS以及IOPS 正在運行的mysql進行監(jiān)控,其中一個方式就是查看mysql運行狀態(tài)。 (1)QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql > show global status like "Question%";、apache和nginx的特性區(qū)別在哪?
apache是一個請求對應(yīng)一個線程的模式,不管那個請求是否需要讀寫都會分配一個線程,而nginx則是異步非阻塞模型,只有當(dāng)請求需要讀寫的時候才會拿出來處理。、問頁面請求超時取決于nginx的配置還是PHP-CGI的配置?
nginx、PHP中的PEAR是什么?
PEAR也就是為PHP擴展與應(yīng)用庫(PHP Extension and Application Repository),它是一個PHP擴展及應(yīng)用的一個代碼倉庫、fastcgi與cgi的區(qū)別
fastcgi和cgi都是協(xié)議,fastcgi是管理cgi的、PHP中常見錯誤類型?
1、Notice:這些都是一些非常正常的信息,而非重大錯誤,甚至有一些都不會展示給用戶。 2、Warning:這類是稍微嚴(yán)重一些的錯誤,錯誤會展示給用戶,但不影響程序的輸出。 3、Fatal errors:這些是非常嚴(yán)重的錯誤,比如要訪問一個不存在的PHP類。、http 狀態(tài)碼?
200 - 服務(wù)器成功返回網(wǎng)頁 301 - 永久移動,請求的網(wǎng)頁已被永久移動到新位置 304 - 緩存網(wǎng)頁未修改,直接返回內(nèi)容 401 - 未授權(quán) 403 -(已禁止) 服務(wù)器拒絕請求 404 - 請求的網(wǎng)頁不存在,網(wǎng)頁不存在。 500 - 服務(wù)器遇到錯誤,無法完成請求。 503 - 服務(wù)器暫時不可用,目前無法使用服務(wù)器(由于超載或進行停機維護)。通常,這只是一種暫時的狀態(tài)。 HTTP 狀態(tài)代碼的完整列表、php中定義常量時,const和define的區(qū)別?
define ("Newconstant", 30); 答:使用const使得代碼簡單易讀,const本身就是一個語言結(jié)構(gòu),而define是一個函數(shù)。另外const在編譯時要比define快很多。 1、const用于類成員變量的定義,一經(jīng)定義,不可修改。Define不可以用于類成員變量的定義,可用于全局常量。 2、Const可在類中使用,define不能 3、Const不能再條件語句中定義常量 4、const采用普通的常量名稱,define可以采用表達式作為名稱 5、const只能接受靜態(tài)的標(biāo)量,而define可以采用任何表達式 6、const定義的常量時大小寫敏感,而define可以通過第三個參數(shù)(為true表示大小寫不敏感)來指定大小寫是否敏感。、PHP支持多繼承嗎?
5.4版本以后可以使用Traits方法實現(xiàn) 5.4版本不可以。PHP類只能繼承一個父類,并用關(guān)鍵字“extended”標(biāo)識。、用最簡單的語言告訴我PHP是什么?
PHP全稱:Hypertext Preprocessor,是一種用來開發(fā)動態(tài)網(wǎng)站的服務(wù)器腳本語言。、什么是MVC?
MVC由Model(模型), View(視圖)和Controller(控制器)組成,PHP MVC可以更高效地管理好3個不同層的PHP代碼。
Model:數(shù)據(jù)信息存取層。
View:view層負(fù)責(zé)將應(yīng)用的數(shù)據(jù)以特定的方式展現(xiàn)在界面上。
Controller:通??刂破髫?fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)
cookie在客戶端保存狀態(tài),session在服務(wù)器端保存狀態(tài)。但是由于在服務(wù)器端保存狀態(tài)的時候,在客戶端也需要一個標(biāo)識,所以session也可能要借助cookie來實現(xiàn)保存標(biāo)識位的作用。 cookie包括名字,值,域,路徑,過期時間。路徑和域構(gòu)成cookie的作用范圍。cookie如果不設(shè)置過期時間,則這個cookie在瀏覽器進程 存在時有效,關(guān)閉時銷毀。
如果設(shè)置了過期時間,則cookie存儲在本地硬盤上,在各瀏覽器進程間可以共享。
session存儲在服務(wù)器端,服務(wù)器用一種散列表類型的結(jié)構(gòu)存儲信息。當(dāng)一個連接建立的時候,服務(wù)器首先搜索有沒有存儲的session id,如果沒有,則建立一個新的session,將session id返回給客戶端,
客戶端可以選擇使用cookie來存儲session id。也可以用其他的方法,比如服務(wù)器端將session id附在URL上。
區(qū)別: (1).cookie在本地,session在服務(wù)器端。 (2).cookie不安全,容易被欺騙,session相對安全。 (3).session在服務(wù)器端,訪問多了會影響服務(wù)器性能。 (4).cookie有大小限制,為3K 多服務(wù)器共享session可以嘗試將session存儲在memcache中。、瀏覽器下載最大并發(fā)數(shù)
http1.0 一般在2-6個 http1.0 一般在4-6個、 簡述POST 和GET傳輸?shù)淖畲笕萘糠謩e是多少?
POST根據(jù)PHP.ini文件配置(默認(rèn)的是8M) GET大小限制在2kb、http協(xié)議中的post和get有何區(qū)別?
GET用于獲取信息,不應(yīng)該用于修改信息,POST可用于更新修改信息。 GET可傳輸數(shù)據(jù)大小和URL有關(guān),而POST沒有限定大小,大小和服務(wù)器配置有關(guān)。 GET放在URL中,因此不安全,而pOST傳輸數(shù)據(jù)對于用戶來說是不可見的,所以相對安全。 在ajax: post不被緩存,get被緩存所以一般在請求結(jié)尾加Math.random(); SERVER端接受:因為在submit提交的時候是按不同方式進行編碼的,所以服務(wù)端在接受的時候會按照不同的方式進行接受! 編碼方式:如果傳遞數(shù)據(jù)是非-ASCII,那么GET一般是不適應(yīng)的,所以在傳遞的時候會做編碼處理!、字符串和數(shù)字比較,如題輸出應(yīng)該是?
$s = "abc"; if ($s == 0) { echo "is zero"; } else { echo "is not zero"; } 答案:is zero 因為PHP是弱類型,類型是可以根據(jù)賦值改變、echo count("abc"); 輸出什么?
echo count(null); 答案:0 echo count(false); 答案:1 echo count(true); 答案:1 echo count("abc"); 答案:1 echo count(123); 答案:1、寫個函數(shù)用來對二維數(shù)組排序。
array_multisort()
、請寫一個函數(shù)驗證電子郵件的格式是否正確(要求使用正則)$reg = "#[a-z0-9-_.]+@[w]{2,}.[w]+#is"; $rst = preg_match($reg, "[email protected]"); if($rst){ echo "正確"; }else { echo "錯誤"; }、用php寫出顯示客戶端Ip與服務(wù)器Ip的代碼
答案:客戶端 getenv("REMOTE_ADDR");
服務(wù)器端 getenv("SERVER_ADDR"); // gethostbyname("www.baidu.com");
function get_max($a,$b,$c) { return ( $a > $b ? $a : $b ) > $c ? ( $a > $b ? $a : $b ) : $c; } echo get_max(1,2,3);
7、寫出 訪問 http://www.sina.com.cn 所需的報文頭
md5_file()、本頁地址,當(dāng)前腳本的名稱
echo $_SERVER[PHP_SELF];、鏈接到當(dāng)前頁面的上一頁面的 URL 地址:
echo $_SERVER[HTTP_REFERER];
、echo(),print(),print_ r()的區(qū)別echo 是php語句, print和print_ r是函數(shù),語句沒有返回值,函數(shù)可以有返回值(即便沒有用) print() 只能打印出簡單類型變量的值(如int, string) print_r() 可以打印出復(fù)雜類型變量的值(如數(shù)組,對象)、對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?
1、pHp緩存 2、生成html靜態(tài)頁面 3、使用主輔數(shù)據(jù)庫,把數(shù)據(jù)庫的讀寫分開 4、使用負(fù)載均衡器和多臺服務(wù)器、類的屬性可以序列化后保存到 session 中,從而以后可以恢復(fù)整個類,這要用到的函數(shù)是。
serialize() 序列化
unserialize() 反序列化、語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語句代替它們?
1、pHp程序執(zhí)行到require()時,只會讀取一次檔案,故常放在程序開頭,檔案引入后pHp會將網(wǎng)頁檔重新編譯,讓引入檔成為原先網(wǎng)頁的一部分。 2、pHp程序執(zhí)行到include()時,每次皆會讀取檔案,故常用于流程控制的區(qū)段,如條件判斷或循環(huán)中。 3、require() :如果文件不存在,會報出一個fatal error.腳本停止執(zhí)行 4、include() : 如果文件不存在,會給出一個 warning,但腳本會繼續(xù)執(zhí)行 5、推薦使用require_once()和include_once(),可以檢測文件是否有重復(fù)包含。、如何修改SESSION的生存時間.
方法一: 將php.ini 中session.gc_maxlifetime 設(shè)置為 9999(默認(rèn)為 1440)重啟 apache 即可 方法二: $savepath = "./session_save_dir/"; $lifeTime = 24 * 3600; session_save_path($savepath); session_set_cookie_params($lifeTime); session_start(); 方法三: setcookie() 或session_set_cookie_params($lifeTime) 在pHp中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須? heredoc的語法是用"<<<"加上自己定義成對的標(biāo)簽,在標(biāo)簽范圍內(nèi)的文字視為一個字符串 需要注意的是: 1、"<<<"后面的EOD是自己定義的標(biāo)簽名稱,必須要成對,而且后面要加上分號表示結(jié)束。 2、結(jié)束的標(biāo)簽前面最好不要有空格,以免發(fā)生錯誤、在pHp中error_reporting這個函數(shù)有什么作用?
error_reporting() 用于設(shè)置php的偵聽錯誤的級別.[用來配置錯誤信息回報的等級].、error_reporting(2047)什么作用?
答案:相當(dāng)于 error_reporting("E_ALL"); 輸出所有的錯誤
、檢測一個變量是否有設(shè)置的函數(shù)是?是否為空的函數(shù)是?isset($a) empty($a)、$arr = array("james", "tom", "symfony"); 請打印出第一個元素的值
echo $arr[0];、$a = "abcdef"; 請取出$a的值并打印出第一個字母
答:echo $a{0} 或 echo substr($a,0,1)、請寫出php5權(quán)限控制修飾符
public(公共) private(私用) protected(繼承)、請寫出php5的構(gòu)造函數(shù)和析構(gòu)函數(shù)
__construct() 構(gòu)造函數(shù) __destruct() 析構(gòu)函數(shù)
4、php中web上傳文件的原理是什么,如何限制上傳文件的大???
pHp上傳文件默認(rèn)大小為2M,設(shè)置上傳大小的配置項是upload_max_filesize,post_max_size設(shè)置一次pOST中pHp能接收的最大數(shù)據(jù)量,應(yīng)該比upload_max_filesize大。
5、php防止sql注入式攻擊,用什么函數(shù)轉(zhuǎn)換字符串?
addslashes();
6、你常用的php字符串函數(shù)?
substr(),strtolower(),ucwords(),ucfirst(),strtoupper(),implode(),explode(),str_replace(),strpos(),strrev()
8、HTTp的通訊協(xié)議是?
TCP
9、php中的文件讀寫操作,讀取文件test.txt中前300字節(jié)的內(nèi)容?
$handle=fopen("test.txt","r"); $contents=fread($handle,300); fclose($handle);
11、寫一個函數(shù),盡可能高效的,從一個標(biāo)準(zhǔn) url 里取出文件的擴展名
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php 答案1: function getExt($url){ $arr = parse_url($url); $file = basename($arr["path"]); $ext = explode(".",$file); return $ext[1]; }
12、php5中魔術(shù)方法函數(shù)有哪幾個,請舉例說明各自的用法
__construct() :實例化對象時被調(diào)用; __destuct():當(dāng)刪除一個對象或者對象操作終止是被執(zhí)行; __call():調(diào)用對象不存在方法時被調(diào)用; __get():調(diào)用對象不存在的屬性時被調(diào)用; __set():設(shè)置對象不存在的屬性時被調(diào)用; __toString():打印一個對象時被調(diào)用,比如echo $obj,print($obj); __clone():克隆對象時被調(diào)用,比如$t = new Test();$tt = clone $t; __sleep():serialize之前被調(diào)用,若對象比較大,想做一些刪除在序列化,可以考慮使用該方法; __wakeup():unserialize之前被調(diào)用,做些對象的初始化; __isset():檢測對象是否存在屬性的時候被調(diào)用,如 isset($c->name); __unset():unset一個對象屬性時被調(diào)用,如:unset($c->name); __set_state():調(diào)用var_export時被調(diào)用,用__set_state的返回值作為 var_export的返回值 __autoload():實例化一個對象時,如果對應(yīng)的類不存在,在該方法被調(diào)用 魔術(shù)常量: __LINE__:返回當(dāng)前行號; __FILE__:返回文件的完整路徑和文件名,如果用在包含文件里面,則返回包含文件名,自 php4.0.2開始, __FILE__總是包含一個絕對路徑,而在此前的版本有時候會包含一個相對路徑 __FUNCTION__:返回函數(shù)名稱(自 php4.3.0新加的)。自php5起本常量返回該函數(shù)被定義時的名稱,區(qū)分大小寫,在php4中該值總是小寫; __CLASS__:返回類的名稱,自 php4.3.0新加的,自php5起本常量返回該類被定義時的名稱,區(qū)分大小寫,在php4中該值總是小寫的; __METHOD__:返回類的方法名。 php5新加的
13、簡單說明pHp的垃圾收集機制是怎樣的?
對變量有個引用計數(shù),計數(shù)到0時變量被銷毀
14、請寫一段pHp代碼,確保多個進程同時寫入同一個文件成功
代碼: function writeData($path, $mode, $data){ $fp = fopen($path, $mode); $retries = 0; $max_retries = 100; do { if ($retries > 0) { usleep(rand(1, 10000)); } $retries += 1; }while (!flock($fp, LOCK_EX) and $retries <= $max_retries); if ($retries == $max_retries) { return false; } fwrite($fp, "$data "); flock($fp, LOCK_UN); fclose($fp); return true; }
15、你用什么方法檢查php腳本的執(zhí)行效率(通常是腳本執(zhí)行時間)和數(shù)據(jù)庫SQL的效率(通常是數(shù)據(jù)庫Query時間),并定位和分析腳本執(zhí)行和數(shù)據(jù)庫查詢的瓶頸所在
php腳本的執(zhí)行效率 1, 代碼腳本里計時 2, xdebug統(tǒng)計函數(shù)執(zhí)行次數(shù)和具體時間進行分析,最好使用工具winCacheGrind分析 3, 在線系統(tǒng)用strace跟蹤相關(guān)進程的具體系統(tǒng)調(diào)用 數(shù)據(jù)庫SQL的效率 sql的explain(mysql),啟用slow query log記錄慢查詢 通常還要看數(shù)據(jù)庫設(shè)計是否合理,需求是否合理等、microtime和mktime兩個函數(shù)的區(qū)別。
echo microtime(); 返回當(dāng)前時間戳 echo mktime(); 取得指定的時間戳
16、求兩個日期的差數(shù),例如2007-2-5 ~ 2007-3-6 的日期差數(shù)
$begin = strtotime("2007-2-5");
$end = strtotime("2007-3-6");
echo ($end-$begin)/(24*3600);
17、用php打印出前一天的時間格式是YYYY-MM-DD HH:II:SS
echo date("Y-m-d H:i:s", time()-24*3600); echo date("Y-m-d H:i:s", strtotime("-1 day")); 前一天 echo date("Y-m-d H:i:s", strtotime("-1 second")); echo date("Y-m-d H:i:s", strtotime("-1 minute")); echo date("Y-m-d H:i:s", strtotime("-1 hour")); echo date("Y-m-d H:i:s", strtotime("-1 day")); echo date("Y-m-d H:i:s", strtotime("-1 week")); echo date("Y-m-d H:i:s", strtotime("-1 month")); echo date("Y-m-d H:i:s", strtotime("-1 year"));
請寫一個函數(shù),實現(xiàn)以下功能:
字符串“open_door” 轉(zhuǎn)換成 “OpenDoor”、”make_by_id” 轉(zhuǎn)換成 ”MakeById”。
function str_change($str) {
$str = str_replace ("_", " ", $str); $str = ucwords($str); $str = str_replace (" ", "", $str); return $str; }
4、請簡述操作系統(tǒng)的線程與進程的區(qū)別。列舉LINUX下面你使用過的軟件?
5、熟悉memcache/redis、MVC/REST架構(gòu)、模板引擎、中間件的原理與應(yīng)用者優(yōu)先;
6、熟悉TCP/IP、HTTP協(xié)議者優(yōu)先;
===============算法=====================
1、請使用偽語言結(jié)合數(shù)據(jù)結(jié)構(gòu)冒泡排序法對以下一組數(shù)據(jù)進行排序 10 2 36 14 10 25 23 85 99 45。
$a = array(10,2,36,14,10,25,23,85,99,45); $count = count($a); for($j=1; $j<$count; $j++){ for($i=0; $i<$count-$j; $i++){ if($a[$i] > $a[$i+1]) { $t = $a[$i] ; $a[$i] = $a[$i+1] ; $a[$i+1] = $t ; } } } print_r($a);
============Mysql==========================
、mysql_fetch_row 和mysql_fetch_array之間有什么區(qū)別?mysql_fetch_row() 從結(jié)果集中取得一行作為枚舉數(shù)組 mysql_fetch_array() 從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有、MYSQL取得當(dāng)前時間的函數(shù)是?,格式化日期的函數(shù)是
now() DATE_FORMAT(date , format) select now(); select curdate(); select curtime();
1、請簡述數(shù)據(jù)庫設(shè)計的范式及應(yīng)用。
一般第3范式就足以,用于表結(jié)構(gòu)的優(yōu)化,這樣做既可以避免應(yīng)用程序過于復(fù)雜同時也避免了SQL語句過于龐大所造成系統(tǒng)效率低下
1NF:原子性 字段不可再分,否則就不是關(guān)系數(shù)據(jù)庫; 2NF:唯一性 一個表只說明一個事物; 3NF:每列都與主鍵有直接關(guān)系,不存在傳遞依賴;
ANSWER:
第一范式:若關(guān)系模式R的每一個屬性是不可再分解的,再屬于第一范式。
第二范式:若R屬于第一范式,且所有的非碼屬性都完全函數(shù)依賴于碼屬性,則為第二范式。
第三范式:若R屬于第二范式,且所有的非碼屬性沒有一個是傳遞函數(shù)依賴于候選碼,則屬于第三范式
1、創(chuàng)建新聞發(fā)布系統(tǒng),表名為message有如下字段 (3分)
id 文章id title 文章標(biāo)題 content 文章內(nèi)容 category_id 文章分類id hits 點擊量 答: CREATE TABLE `message`( `id` int(10) NOT NULL AUTO_INCREMENT, `title` VARCHAR(200) default NULL, `content` text, `category_id` int(10) NOT NULL, `hits` int(20), PRIMARY KEY(`id`) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、列出有二門以上(含兩門)不及格課程的學(xué)生姓名及其平均成績
name score 張三 語文 59 張三 數(shù)學(xué) 80 張三 英語 33 李四 語文 50 李四 數(shù)學(xué) 50 李四 英語 58 王五 語文 88 王五 數(shù)學(xué) 90 答:select name,sum(score<60) as gk,avg(score) as pj from student group by name having gk>=2;
============Javascript==========================
、JS表單彈出對話框函數(shù)是?獲得輸入焦點函數(shù)是?彈出對話框: alert(),prompt(),confirm() 獲得輸入焦點 focus()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22595.html
摘要:我在面試前針對基礎(chǔ)也花了不少的時間,期間也將自己寫過的博文粗略地刷了一遍,同時也在網(wǎng)上找了不少比較好的資料部分是沒看完的??疵嬖囶}也是校驗自己是否真正理解了這個知識點,也很有可能會有新的收獲。 一、前言 只有光頭才能變強 回顧前面: 廣州三本找Java實習(xí)經(jīng)歷 上一篇寫了自己面試的經(jīng)歷和一些在面試的時候遇到的題目(筆試題和面試題)。 我在面試前針對Java基礎(chǔ)也花了不少的時間,期間也將...
摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實現(xiàn)故障恢復(fù)自動化詳解哨兵技術(shù)查漏補缺最易錯過的技術(shù)要點大掃盲意外宕機不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...
摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實現(xiàn)故障恢復(fù)自動化詳解哨兵技術(shù)查漏補缺最易錯過的技術(shù)要點大掃盲意外宕機不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...
摘要:正如我標(biāo)題所說,簡歷被拒??戳宋液啔v之后說頭條競爭激烈,我背景不夠,點到為止。。三準(zhǔn)備面試其實從三月份投遞簡歷開始準(zhǔn)備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號:進擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學(xué)的分享 目錄: 印象中的頭條 面試背景 準(zhǔn)備面試 ...
摘要:正如我標(biāo)題所說,簡歷被拒??戳宋液啔v之后說頭條競爭激烈,我背景不夠,點到為止。。三準(zhǔn)備面試其實從三月份投遞簡歷開始準(zhǔn)備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號:進擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學(xué)的分享目錄:印象中的頭條面試背景準(zhǔn)備面試頭條一面(Java+項目)頭條...
閱讀 2580·2021-09-06 15:02
閱讀 3213·2021-09-02 10:18
閱讀 2835·2019-08-30 15:44
閱讀 695·2019-08-30 15:43
閱讀 1959·2019-08-30 14:08
閱讀 2767·2019-08-30 13:16
閱讀 1408·2019-08-26 13:52
閱讀 939·2019-08-26 12:21