php折半查找面試題,php 面試題(一)

最近轉載一些面試題,希望能給找工作的朋友們帶來一點幫助。

1.寫出5個以上你所知道的常用的Linux命令和它的功能

cat,顯示文件內容。

cd,改變目錄路徑。

cp,復制文件。

find,查找文件。

grep,搜索、過濾信息。

ls,列出目錄信息。

more,分頁顯示。

rm,刪除文件或目錄。

vi,調用vi文本編輯器。

who,顯示登錄用戶信息。

2.HTTP/1.0 中,狀態碼 200 301 304 403 404 500的含義

200 - 服務器成功返回網頁

301(永久移動)請求的網頁已永久移動到新位置。

304(未修改)自從上次請求后,請求的網頁未修改過

403(禁止)服務器拒絕請求

404 - 請求的網頁不存在

503 - 服務器超時

3.請寫出以下html標簽的含義:input form script style table b img

寫出PHP(或其他語言)的public、protected、private三種訪問控制模式的區別?

屬于OOP面向對象語言中的類中訪問控制模式

Public可以外部訪問

Protected,private只可以內部訪問

Public,protected可以被繼承

Private不可以被繼承

5.請描述 PHP(或其他語言) Session 的運行機制,大型網站中Session方面應注意什么?

運行機制:客戶端將session id傳遞到服務器,服務器根據session id找到對應的文件,讀取的時候對文件內容進行反序列化就得到session的值,保存的時候先序列化再寫入

注意:1,session在大訪問量網站上確實影響系統性能,影響性能的原因之一由文件系統設計造成,在同一個目錄下超過10000個文件時,文件的定位將非常耗時,可以通過修改php.ini中session.save_path設置兩級子目錄 ,session將存儲在兩級子目錄中,每個目錄有16個子目錄[0~f],不過好像PHP session不支持創建目錄,你需要事先把那么些目錄創建好 。

2,還有一個問題就是小文件的效率問題,可以通過存儲方式中的memcache來解決I/O效率低下的問題

3,session同步問題,session同步有很多種,如果你是存儲在memcached或者MySQL中,那就很容易了,指定到同樣的位置即可,還有一種方法就是在負載均衡那一層保持會話,把訪問者綁定在某個服務器上,他的所有訪問都在那個服務器上就不需要session同步了

6.簡單描述mysql中,索引,主鍵,唯一索引,聯合索引的區別,對數據庫的性能有什么影響(從讀寫兩方面)

索引就相當于對指定的列進行排序,排序有利于對該列的查詢,可以大大增加查詢效率

建立索引也是要消耗系統資源,所以索引會降低寫操作的效率

主鍵,唯一,聯合都屬于索引

主鍵屬于唯一索引,且一個表只能有一個主鍵,主鍵列不允許空值

唯一索引可以一個表中可以有多個,而且允許為空,列中的值唯一

多個字段的多條件查詢多使用聯合索引

7.MySQL 數據庫中 varchar和char的主要區別是什么,哪種查詢效率更高,為什么?

varchar變長字符串,char定長字符串

Char效率更高,由于不需要對儲存空間計算后在存儲,所以效率更高

8.解釋MySQL外連接、內連接與自連接的區別

Mysql外連接分為左連接(left join....on)和右連接(right join.... on),左連接是以左表作為條件查詢關聯右表數據,無對應數據則補空,右連接則相反

Mysql內連接(inner join.....on)是做關聯查詢時,內連接的特性是只顯示符合連接條件的記錄

Mysql自連接:在FROM clause(子句)中我們可以給這個表取不同的別名, 然后在語句的其它需要使用到該別名的地方用dot(點)來連接該別名和字段名

9.說說下面這些這些協議的全稱和中文解釋SMTP、POP3、HTTP、FTP、DNS

Smtp簡單郵件協議

Pop3郵局協議

http超文本傳輸協議

ftp文件傳送協議

Dns域名解析協議

10.javascript 包括那些基本數據類型?

數字,字符串,null,undefined,boolean

11.用css、html編寫一個兩列布局的網頁,右側固定寬度200px,左側自適應

右邊固定200px寬度
左邊自適應

項目設計

假設有一個包含Tag功能的博客系統,數據庫存儲采用mysql,用戶數量為1000萬,預計文章總數為10億,每天有至少10萬的更新量,每天訪問量為5000萬,對數據庫的讀寫操作的比例超過10:1。

你如何設計該系統,以確保其系統高效,穩定的運行?

提示:可以從數據庫設計,系統框架,及網絡架構方面進行描述,可以寫代碼/偽代碼輔助說明,可以自由發揮

讀寫分離,讀寫服務器比例10:1,使用分頁查詢減少數據庫壓力,靜態化分頁后使用memcache分布式緩存,減少i/o開銷和數據壓力,增刪改時刪除對應的靜態化數據,通過查詢分頁,分開靜態化對應的分頁信息緩存,數據庫分庫分表分區,使用lvs負載均衡,活躍和不活躍的文章進行分表存儲,提高數據庫中文章查詢

效率,建立聯合索引,提高查詢效率,使用中文分詞技術提高文章內容的查詢效率

編寫程序(請任選兩題)

描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對象可以是一個有序數組

假設有"123abc456def789"這么一個字符串,寫一個函數,可以傳入一個字符串,和一個要截取的長度。返回截取后的結果。

要求:

1 標記不得計算在長度之內。

2 截取后的字符串,要保留原有標簽,不過如果最后有一個標簽沒有閉合,則去掉其開始標簽。

示例:

題中的字符串,要截取長度5,則返回的字符串應該為:123ab,要截取長度8,應返回123abc45。

function newsubstr($str,$num){

$strNeed = preg_replace(array('//','//'),array('',','),$str);

$arr = explode(',',$strNeed);

$arrCount = array_map('strlen',$arr);

$newstr = '';

if($num < $arrCount[0]+$arrCount[1] && $num >= 0){

$newstr .= ($num<=$arrCount[0]) ? substr($arr[0],0,$num) : substr($arr[0],0,$arrCount[0]).substr($arr[1],0,$num-$arrCount[0]);

}else{

foreach($arr as $key=>$val){

if( $key>1 && $num < array_sum(array_slice($arrCount,0,$key+1)) && $num >= array_sum(array_slice($arrCount,0,$key))){

//echo $key;

$newstr .= $arr[0]."{$arr[1]}";

for($i = 2;$i <= $key; $i++ ){

$newstr .= $i'.$arr[$i].'' : substr($arr[$key],0,$num-array_sum(array_slice($arrCount,0,$key+1)));

}

}

}

if($num >= array_sum($arrCount)){

$newstr = $str;

}

echo $newstr;

}

$str = '123abc456def789';

newsubstr($str,8);

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

function monkeyKing($n, $m) { //$n為猴子總數,$m為剔除猴子步長

$s = 0; //$s為大王坐標,只有一只猴子時,大王坐標為0

for($i = 2; $i <= $n; $i++) { //依次向后遞推,求到共有$n只猴子,剔除步長為$m時的大王坐標

$s = ($s + $m) % $i; //大王坐標遞推公式

}

return $s;

}

echo monkeyKing(6, 2);

4.翻轉字符串中的單詞,字符串僅包含大小寫字母和空格,單詞間使用空格分隔。

如:輸入 “This is PHP”,輸出 “PHP is This”

非必要請不要使用PHP自帶函數

function myrev($str){

$arr = explode(' ',$str);

$num = count($arr);

for($i = 0; $i < $num/2; $i++){

$temp = $arr[$i];

$arr[$i] = $arr[$num-$i-1];

$arr[$num-$i-1] = $temp;

}

return implode(' ',$arr);

}

$str = 'This is PHP';

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382969.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

次梯度法matlab代碼,實例:連續化次梯度法解 LASSO 問題

實例&#xff1a;連續化次梯度法解 LASSO 問題我們將在此頁面中構造一個 LASSO 問題并且展示連續化次梯度方法在其中的應用。目錄構造LASSO優化問題設定隨機種子。clear;seed 97006855;ss RandStream(mt19937ar,Seed,seed);RandStream.setGlobalStream(ss);構造 LASSO 優化問…

php變量使用,php變量的使用

來源:www.cncfan.com | 2006-1-11 | (有1856人讀過)就像大部份的結構化程序&#xff0c;有所謂的全局變量與局部變量&#xff0c;PHP 在這方面也是有相似之處。在 PHP 的程序執行時&#xff0c;系統會在內存中保留一塊全局變量的區域。實際運用時&#xff0c;可以透過 $GLOBALS…

php syncml 協議,基于改進的SyncML協議的圖像安全同步技術研究

Image secure synchronization technology research based on improved SyncML protocolJIA Zhaolong1賈兆攏(1991-)&#xff0c;女&#xff0c;北京郵電大學碩士生&#xff0c;主要研究方向&#xff1a;網絡安全技術與應用MA Zhaofeng2馬兆豐(1974-)&#xff0c;男&#xff0c…

php 文字水印如何居中,php文字水印和php圖片水印實現代碼(二種加水印方法)

$dst_path dst.jpg;$src_path src.jpg;//創建圖片的實例$dst imagecreatefromstring(file_get_contents($dst_path));$src imagecreatefromstring(file_get_contents($src_path));//獲取水印圖片的寬高list($src_w, $src_h) getimagesize($src_path);//將水印圖片復制到目…

qq ip探測儀 php,巧用Win7資源監視器,查看QQ好友IP

用QQ時間比較長、喜歡DIY的朋友都知道&#xff0c;有一些第三方版本的QQ或者插件可以顯示好友IP地址&#xff0c;但其實在Windows7中根本用不著第三方軟件&#xff0c;在系統自帶的資源監視器中&#xff0c;就能很方便的看到QQ好友的IP地址。首先&#xff0c;打開“任務管理器”…

oracle安裝顯示注冊表,windows下oracle 11g r2 安裝過程與卸載詳細圖解

Oracle 11g安裝1.解壓下載的包&#xff0c;然后進入包內&#xff0c;點擊setup.exe開始安裝 。2.出現如下&#xff1a;一般把那個小對勾取消&#xff0c;點擊下一步進行&#xff0c;彈出下圖這個后點‘是3.下圖后&#xff0c;選擇創建和配置數據庫&#xff0c;點擊下一步。4.下…

oracle+連接格式,oracle外連接符號(+)的用法

我們都知道&#xff0c;PL/SQL中實現外連接&#xff0c;除了可以用關鍵詞OUTER JOIN外&#xff0c;還可以用Oracle的外連接符號()。對于這個外連接符號()&#xff0c;雖然看到書上說&#xff1a;使用()進行外連接時&#xff0c;where條件中&#xff0c;對于附表的字段都應帶上(…

php一行多個商品,【后端開發】php一行展示多個商品怎么實現

php一行展示多個商品怎么實現php可以用來連接數據庫查詢商品&#xff0c;并輸出展示給用戶&#xff0c;但想要實現一行展示多個商品需要用到css技術&#xff0c;具體實現如下&#xff1a;1、首先php代碼$sql "select * from user";$result $conn->query($sql);i…

linux設置時間快1小時,LINUX CentOS系統時間與現在時間相差8小時解決方法

GPS 系統中有兩種時間區分&#xff0c;一為UTC&#xff0c;另一為LT(地方時)兩者的區別為時區不同&#xff0c;UTC就是0時區的時間&#xff0c;地方時為本地時間&#xff0c;如北京為早上八點(東八區)&#xff0c;UTC時間就為零點&#xff0c;時間比北京時晚八小時&#xff0c;…

linux雙網卡端口聚合,Linux雙網卡聚合改造

Linux雙網卡聚合改造一、環境和需求Linux主機只有一塊網卡接到交換機上&#xff0c;為了消除交換機的單點&#xff0c;新增一臺交換機&#xff0c;Linux主機端新接一塊網卡到新交換機上&#xff0c;對這兩塊網卡做聚合達到目的。二、物理連線使用網線連接新增交換機和新網卡三、…

linux服務器無法識別xml文件,linux上重啟服務器提示找不到smartbi-config.xml文件

(本文檔僅供參考)問題服務器上重啟服務時&#xff0c;報了如下錯誤信息&#xff1a;(備注&#xff1a;因安全考慮&#xff0c;新版本的config登錄界面已經不展示config文件的加載路徑了。)解決方案原因一&#xff1a;這是一個關于在哪個路徑下啟動smartbi服務的問題。首先&…

linux uname命令詳解,linux中uname命令參數及用法詳解

uname 命令可用于大多數 UNIX 和類 UNIX 系統以及 Linux。功能說明&#xff1a;uname用來獲取電腦和操作系統的相關信息。語  法&#xff1a;uname [-amnrsvpio][--help][--version]補充說明&#xff1a;uname可顯示linux主機所用的操作系統的版本、硬件的名稱等基本信息。參…

android linux網絡連接,Android和Linux服務器之間的TCP連接

我正在編寫一個代碼&#xff0c;需要每秒從Android移動設備向臺式計算機(linux服務器)發送數據。由于數據經常發送&#xff0c;通過Http命中無法實現(因為會消耗時間)&#xff0c;所以Tcp通信似乎是更好的選擇&#xff0c;因為android手機的數據可以通過此套接字編程快速發送。…

linux堆上的內存可執行嗎,pwn的藝術淺談(二):linux堆相關

這是linux pwn系列的第二篇文章&#xff0c;前面一篇文章我們已經介紹了棧的基本結構和棧溢出的利用方式&#xff0c;堆漏洞的成因和利用方法與棧比起來更加復雜&#xff0c;為此&#xff0c;我們這篇文章以shellphish的how2heap為例&#xff0c;主要介紹linux堆的相關數據結構…

arm嵌入式linux應用實例開發pdf,零點起步——ARM嵌入式Linux應用開發入門一書的源代碼...

代碼片段和文件信息屬性 大小 日期 時間 名稱----------- --------- ---------- ----- ----文件 24064 2016-03-20 09:49 零點起步——ARM嵌入式Linux應用開發入門\習題答案 (1).doc文件 24064 2016-03-20 09:50 零點起步——ARM嵌入式Lin…

linux上p圖工具,linux圖片處理工具GraphicsMagick安裝使用

安裝依賴包&#xff1a;yum install libpng libjpeg freetype libpng-devel libjpeg-devel libtool-ltdl-devel libtool-ltdl官網下載GraphicsMagick包官網地址&#xff1a;http://www.graphicsmagick.org/解壓編譯安裝&#xff1a;tar xf GraphicsMagick-1.3.25.tar.gz./confi…

manjaro linux下載軟件,manjaro linux

manjaro linux下載。manjaro linux是基于Arch Linux開發的Linux操作系統&#xff01;對于裸服務器、虛擬機、IaaS 和 PaaS 方面都得到了加強&#xff0c;而且內置了強大的數據中心滿足商業的各種要求&#xff0c;是強大的混合云平臺和物理系統&#xff01;manjaro linux介紹man…

linux 安裝qt 4.6軟件,QT學習之一:Linux下安裝QT之版本qt-4.6.3

在Linux中分別安裝應用于不同平臺的QT&#xff1a;PC&#xff1b;嵌入式X86&#xff1b;ARM。這三者PC版、嵌入式X86版和ARM版的區別主要體現在&#xff1a;當configure時分別加了不同的參數&#xff0c;具體區別是&#xff1a;PC平臺&#xff1a;在linux中全安裝qt&#xff0c…

linux kill命令使用方法,Linux初學者的killall命令(8個例子)

Linux初學者的killall命令(8個例子)我們已經討論了kill命令 &#xff0c;如果你想在Linux中終止進程&#xff0c;你可以使用kill命令 。 但是&#xff0c;還有一個命令行實用程序可以用于相同的目的&#xff1a; killall 。 在本教程中&#xff0c;我們將使用一些易于理解的示例…

linux wait 信號丟失,wait函數族和SIGCHLD信號的關系

一、wait()和waitpid()函數的區別pid_t wait(int *status)進程一旦調用了wait&#xff0c;就立即阻塞自己&#xff0c;由wait自動分析是否當前進程的某個子進程已經退出&#xff0c;如果讓它找到了這樣一個已經變成僵尸的子進程&#xff0c; wait就會收集這個子進程的信息&…