日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql跨年统计年前年后_PHP面试总结 - osc_chmxgjn9的个人空间 - OSCHINA - 中文开源技术交流社区...

發布時間:2024/3/24 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql跨年统计年前年后_PHP面试总结 - osc_chmxgjn9的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

18、一群猴子排成一圈,按1,2,…,n依次編號。然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,在把它踢出去…,如此不停 的進行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最后那個大王的編號(約瑟夫環)。

1

2 function fuhuan($allnum, $ti){

3 $arr = array();

4 for($i = 0; $i < $allnum; $i++){

5 $arr[$i] = $i;

6 }

7

8 $nums = 1;

9 while(count($arr) > 1){

10 foreach ($arr as $key => $value) {

11 if($nums == $ti){

12 unset($arr[$key]);

13 $nums = 1;

14 }else{

15 $nums++;

16 }

17 }

18 }

19 $new_arr = array_values($arr);

20 var_dump($new_arr[0] + 1);

21 }

22 fuhuan(10,10);

19、isset() 、empty()與is_null的區別

1、當變量未定義時,is_null() 和“參數本身”是不允許作為參數判斷的,會報Notice警告錯誤;

2、empty , isset首先都會檢查變量是否存在,然后對變量值進行檢測。而is_null 和 “參數本身”只是直接檢查變量值,是否為null,因此如果變量未定義就會出現錯誤!

3、isset():僅當null和未定義,返回false;

4、empty():""、0、"0"、NULL、FALSE、array(),未定義,均返回true;

5、is_null():僅判斷是否為null,未定義報警告;

6、變量本身作為參數,與empty()一致,但接受未定義變量時,報警告;

20、求兩個文件的相對路徑(這題沒什么實際意義)

1 getpath('/a/b/c/d/e.php', '/a/d/12/34/c.php');

2

3 public function getpath($a, $b)

4 {

5 $aarr = explode('/', $a);

6 $barr = explode('/', $b);

7 $count = count($barr) - 2;

8 $pathinfo = '';

9 for($i = 1; $i <= $count; $i++){

10 if($aarr[$i] == $barr[$i]){

11 $pathinfo .= '../';

12 }else{

13 $pathinfo .= $barr[$i] . '/';

14 }

15 }

16 echo $pathinfo;

17 }

21、MVC的優缺點

1、 MVC的優點

(1)

可以為一個模型在運行時同時建立和使用多個視圖。變化-傳播機制可以確保所有相關的視圖及時得到模型數據變化,從而使所有關聯的視圖和控制器做到行為同步。(2)視圖與控制器的可接插性,允許更換視圖和控制器對象,而且可以根據需求動態的打開或關閉、甚至在運行期間進行對象替換。(3)模型的可移植性。因為模型是獨立于視圖的,所以可以把一個模型獨立地移植到新的平臺工作。需要做的只是在新平臺上對視圖和控制器進行新的修改。(4)潛在的框架結構??梢曰诖四P徒贸绦蚩蚣?#xff0c;不僅僅是用在設計界面的設計中。2、 MVC的不足之處

(1)增加了系統結構和實現的復雜性。對于簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結構的復雜性,并可能產生過多的更新操作,降低運行效率。(2)視圖與控制器間的過于緊密的連接。視圖與控制器是相互分離,但確實聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。(3)視圖對模型數據的低效率訪問。依據模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。(4) 目前,一般高級的界面工具或構造器不支持MVC模式。改造這些工具以適應MVC需要和建立分離的部件的代價是很高的,從而造成使用MVC的困難。

22、session與cookie的聯系和區別(運行機制),session共享問題解決方案

區別與聯系:

使用session_start()調用session,服務器端在生成session文件的同時生成session ID哈希值和默認值為PHPSESSID的session name,并向客戶端發送變量為PHPSESSID(session name)(默認)值為一個128位的哈希值。服務器端將通過該cookie與客戶端進行交互,session變量的值經php內部系列化后保存在服務器 機器上的文本文件中,和客戶端的變量名默認情況下為PHPSESSID的coolie進行對應交互,即服務器自動發送了http 頭:header(‘Set-Cookie: session_name()=session_id(); path=/’);即setcookie(session_name(),session_id());當從該頁跳轉到的新頁面并調用 session_start()后,PHP將檢查與給定ID相關聯的服務器端存貯的session數據,如果沒找到則新建一個數據集。

共享

方案:

1:使用數據庫保存session, 使用數據庫來保存session,就算服務器宕機了也沒事,session照樣在。

問題:程序需要定制;每次請求都進行數據庫讀寫開銷不小,另外數據庫是一個單點,可以做數據庫的hash來解 決這個問題。

2:使用 memcached來保存session,?這種方式跟數據庫類似,內存存取性能比數據庫好很多。

問題:程序需要定制,增加 了工作量;存入memcached中的數據都需要序列化,效率較低,斷電或者重啟電腦容易丟失數據;

3: 通過加密的cookie,在A服務器上登錄,在用戶的瀏覽器上添加加密的cookie,當用戶訪問B服務器時,檢查有無Session,如果沒有,就檢驗 Cookie是否有效,Cookie有效的話就在B服務器上重建session。簡單,高效, 服務器的壓力減小了,因為session數據不存在服務器磁盤上。根本就不會出現session讀取不到的問題。

問題:網絡請求占用很多。每次請求時,客戶端都要通過cookie發送session數據給服務器,session中數據不能太多,瀏覽器對cookie 的大

小存在限制。不適合高訪問量的情況,因為高訪問量的情況下。

23、?正則表達式

正則表達式一定要會, 通過正則表達式能很容易的看出一個人的基礎

匹配中文字符的正則表達式: [\u4e00-\u9fa5]匹配雙字節字符(包括漢字在內):[^\x00-\xff]匹配空行的正則表達式:\n[\s| ]*\r匹配HTML標記的正則表達式:/.*|/匹配首尾空格的正則表達式:(^\s*)|(\s*$)匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配網址URL的正則表達式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$匹配國內電話號碼:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$

24、寫一個函數得到header頭信息

function getHeader()

{

$headers = [];

if (function_exists('getallheaders')) {

$headers = getallheaders();

} elseif (function_exists('http_get_request_headers')) {

$headers = http_get_request_headers();

} else {

foreach ($_SERVER as $key => $value) {

if(strstr($key, 'HTTP_')) {

$newk = ucwords(strtolower(str_replace('_', '-', substr($key, 5))));

$headers[$newk] = $value;

}

}

}

var_dump($headers);

}

------------------------MySQL部分-----------------------

1、select * from table where (ID = 10)? or (ID = 32) or (ID = 22)? 讓結果按10, 32, 22的順序檢索出來?

Select *

from user_info

Where (ID IN (10, 32, 22))

order BY FIND_IN_SET(ID, '10, 32, 22')

----------------------linux部分-----------------------

1、core文件是什么,有什么用?

core是unix系統的內核。當你的程序出現內存越界的時候,操作系統會中止你的進程,并將當前內存狀態倒出到core文件中,以便進一步分析。程序員可以通過core文件來找出問題所在。它記錄了程序掛掉時詳細的狀態描述。

什么是core dump Core的意思是內存, Dump的意思是扔出來, 堆出來。開發和使用Unix程序時, 有時程序莫名其妙的down了, 卻沒有任何的提示(有時候會提示core dumped). 這時候可以查看一下有沒有形如core.進程號的文件生成, 這個文件便是操作系統把程序down掉時的內存內容扔出來生成的,它可以做為調試程序的參考.

core dump又叫核心轉儲, 當程序運行過程中發生異常, 程序異常退出時, 由操作系統把程序當前的內存狀況存儲在一個core文件中, 叫core dump。如何使用core文件 gdb -c core文件路徑 [應用程序的路徑],進去后輸入where回車, 就可以顯示程序在哪一行當掉的, 在哪個函數中.

為什么沒有core文件生成呢? core文件的生成跟你當前系統的環境設置有關系, 可以用下面的語句設置一下, 然后再運行程序便成生成core文件.

ulimit -c unlimited core文件生成的位置一般于運行程序的路徑相同, 文件名一般為core.進程號

不用core文件,程序出了問題產生信號是否知道?答:內核向進程發信號嘛。

2、共享內存除了文件映射還有什么方式?

共享內存對象映射。

二者有什么區別:

區別:內存映射文件是由一個文件到一塊內存的映射,使應用程序可以通過內存指針對磁盤上的文件進行訪問,其過程就如同對加載了文件的內存的訪問,因此內存文件映射非常適合于用來管理大文件。

3、請解釋下列10個shell命令的用途

top、ps、mv、find、df、cat、chmod、chgrp、grep、wc

top:命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似于Windows的任務管理器。

ps:查看進程

mv:移動或者更改文件

find:在子目錄中搜索匹配的文件

df:linux中df命令參數功能:檢查文件系統的磁盤空間占用情況。

cat:把一個或多個文件內容顯示到標準輸出

chmod:改變文件屬性

chgrp:改變用戶分組

grep:在文件內進行搜索

wc:命令的功能為統計指定文件中的字節數、字數、行數,?并將統計結果顯示輸出。

4、Linux文件屬性有哪些?(共十位)

-rw-r--r--那個是權限符號,總共是- --- --- ---這幾個位。

第一個短橫處是文件類型識別符:-表示普通文件;c表示字符設備(character);b表示塊設備(block);d表示目錄 (directory);l表示鏈接文件(link);后面第一個三個連續的短橫是用戶權限位(User),第二個三個連續短橫是組權限位 (Group),第三個三個連續短橫是其他權限位(Other)。每個權限位有三個權限,r(讀權限),w(寫權限),x(執行權限)。如果每個權限位都 有權限存在,那么滿權限的情況就是:-rwxrwxrwx;權限為空的情況就是- --- --- ---。

權限的設定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:

一個文件aaa具有完全空的權限- --- --- ---。

chmod u+rw aaa(給用戶權限位設置讀寫權限,其權限表示為:- rw- --- ---)

chmod g+r aaa(給組設置權限為可讀,其權限表示為:- --- r-- ---)

chmod ugo+rw aaa(給用戶,組,其它用戶或組設置權限為讀寫,權限表示為:- rw- rw- rw-)

如果aaa具有滿權限- rwx rwx rwx。

chmod u-x aaa(去掉用戶可執行權限,權限表示為:- rw- rwx rwx)

如果要給aaa賦予制定權限- rwx r-x r-x,命令為:

chmod u=rwx,go=rx aaa

總結

以上是生活随笔為你收集整理的mysql跨年统计年前年后_PHP面试总结 - osc_chmxgjn9的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。