程序員找工做必備PHP基礎面試題 - 第十二天

「PHP學習網」 公衆號會天天分享一些面試題,正在找工做的小夥伴們能夠來看看哦。

1、設$day1,$day2 爲yyyy-mm-dd格式的日期

使用mktime()製造出時間戳,再使用date()顯示爲yyyy-mm-dd格式的日期php

2、請寫出php -l、php -m、php -r的做用。

php –l:檢測PHP的語法
php –r:直接運行PHP代碼
php –m:將打印出內置以及已加載的PHP及zend模塊

3、寫出你熟知的可以使HTML和PHP分離開使用的模板, 並簡述其工做原理

Smarty

tpl模板文件由php官方開發的smarty模板語言編寫。 tpl文件第一次被hbcms系統調用後,將自動編譯,並生成php文件,存儲在template/system/compile目錄裏。 之後再次調用tpl文件,smarty系統會自動判斷tpl文件是否被修改過,若是沒有被修改,就再也不重複編譯,而是直接讀取上一次編譯好的php文件。mysql

4、如何取得某個程序中, 第n行到第m行之間的程序片斷 的執行時間

$start=microtime(true);
程序片斷
$end=microtime(true);
echo ($end-$start);

5、如何 實現字符串翻轉 ?

一、自帶函數strrev()
二、面試

$str = "abcdefg";
function strrevv($str){
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--){
$newstr .= $str[$i];
}
return $newstr;
}
$showstr = strrevv($str);
echo $showstr."<br>";

六. 說明如下表明的含義: LINE FILE $SERVER[「REMOTE_ADDR」] $SERVER[「PHP_SELF」]

__LINE__:當前文件的行數
__FILE__:返回文件的完整路徑和文件名。若是用在被包含文件中,則返回被包含的文件名
$SERVER[「REMOTE_ADDR」]:正在瀏覽當前頁面用戶的 IP 地址。
$SERVER[「PHP_SELF」]:當前正在執行腳本的文件名redis

7、如何提升數據庫訪問速度?依據是什麼?

1.表設計必定要優化,冗餘數據最少,少用鏈接查詢。若是在實際應用中,使用了極其複雜的鏈接,子查詢,則數據表的設計得要從新考慮了。sql

2.儘可能用char而不是varchar,由於固定長度得string用起來更快.在當今硬盤容量愈來愈大的狀況下,犧牲點存儲空間而換得查詢速度得提高是值得的。數據庫

3.經過簡化權限來提升查詢速度。若是一個查詢以前要執行不少權限驗證,則查詢速度會慢下來,不妨試着在mysql中用root登陸與用你新建的有權限控制的用戶登陸的速度,就能夠看出來了,root登陸,一會兒就進入了,而普通用戶登陸,總會延遲一下。服務器

4.表的優化。若是一個表已經用了一段時間,隨着更新和刪除操做的發生,數據將會變得支離破碎,這樣一樣會增長在該表中進行物理搜索所花費的時間。你要知道的是,在mysql底層設計中,數據庫將被映射到具備某種文件結構的目錄中,而表則映射到文件。因此磁盤碎片是頗有可能發生的。慶幸的是,在mysql中,咱們能夠經過下面的語句進行修復:ide

8、假設您有數據庫(dbname=TEST_DB)足夠的權限,請爲192.168.1.100服務器上的testuser用戶開放訪問該數據庫的全部權限併爲其設置訪問密碼。

grant all on TEST_DB.* to testuser@192.168.1.100 identified by "123";

9、什麼狀況下須要備份數據庫?如何備份數據庫?

保存數據的完整性,防止數據丟失,病毒感染
一、直接拷貝數據庫文件
二、使用命令mysqldump
三、使用工具進行備份

10、假設如今mysql服務器查詢較慢,如何查找引發緩慢緣由的具體查詢語句?如何終止該語句的執行?

用microtime查每句sql語句的執行時間比較長的
用EXPLAIN 語句 來分析一下select 語句的運行效果,例如explain能夠得到select語句
使用的索引狀況、排序的狀況等等。
終止語句執行能夠查出正在運行的進程,而後kill掉就能夠了。
SHOW PROCESSLIST;
KILL 查出來的Id;函數

最後各位能夠掃下方二維碼關注我公衆號,目前我正在更新基礎面試題,以後會更新中高級、redis、liunx面試題

weixin.jpg

相關文章
相關標籤/搜索