版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PHP面試題1、用PHP打印出前一天的時(shí)間,格式是2006-5-10 22:21:212、echo(),print(),print_r()的區(qū)別echo是語(yǔ)言結(jié)構(gòu),無(wú)返回值;print功能和echo基本相同,不同的是print是函數(shù),有返回值;print_r是遞歸打印,用于輸出數(shù)組對(duì)象3、能夠使HTML和PHP分離開(kāi)使用的模板4.如何實(shí)現(xiàn)PHP、JSP交互?題目有點(diǎn)含糊不清,SOAP,XML_RPC,Socket function,CURL都可以實(shí)現(xiàn)這些,如果是考PHP和Java的整合,PHP內(nèi)置了這種機(jī)制(如果考PHP和.NET的整合,也可以這么回答),例如$foo = new Java(j
2、ava.lang.System);5.使用哪些工具進(jìn)行版本控制?CVS和SVN,SVN號(hào)稱下一代CVS,功能強(qiáng)大,不過(guò)CVS是老牌,市占率很高.我一直用SVN,題目是問(wèn)用什么工具,呃,這個(gè)可能需要這么回答:CVS Server on Apache作服務(wù)端,WinCVS作客戶端;Subversion on Apache/DAV 做服務(wù)端,TortoiseSVN做客戶端,或者Subclipse做客戶端6.如何實(shí)現(xiàn)字符串翻轉(zhuǎn)??phpfunction reverse($var) $res=; for($i=0,$j=strlen($var);$i7、優(yōu)化MYSQL數(shù)據(jù)庫(kù)的方法。(1).數(shù)據(jù)庫(kù)設(shè)計(jì)方面
3、,這是DBA和Architect的責(zé)任,設(shè)計(jì)結(jié)構(gòu)良好的數(shù)據(jù)庫(kù),必要的時(shí)候,去正規(guī)化(英文是這個(gè):denormalize,中文翻譯成啥我不知道),允許部分?jǐn)?shù)據(jù)冗余,避免JOIN操作,以提高查詢效率(2).系統(tǒng)架構(gòu)設(shè)計(jì)方面,表散列,把海量數(shù)據(jù)散列到幾個(gè)不同的表里面.快慢表,快表只留最新數(shù)據(jù),慢表是歷史存檔.集群,主服務(wù)器Read & write,從服務(wù)器read only,或者N臺(tái)服務(wù)器,各機(jī)器互為Master(3).(1)和(2)超越PHP Programmer的要求了,會(huì)更好,不會(huì)沒(méi)關(guān)系.檢查有沒(méi)有少加索引(4).寫(xiě)高效的SQL語(yǔ)句,看看有沒(méi)有寫(xiě)低效的SQL語(yǔ)句,比如生成笛卡爾積的全連接啊,大
4、量的Group By和order by,沒(méi)有l(wèi)imit等等.必要的時(shí)候,把數(shù)據(jù)庫(kù)邏輯封裝到DBMS端的存儲(chǔ)過(guò)程里面.緩存查詢結(jié)果,explain每一個(gè)sql語(yǔ)句(5).所得皆必須,只從數(shù)據(jù)庫(kù)取必需的數(shù)據(jù),比如查詢某篇文章的評(píng)論數(shù),select count(*) . where article_id = ? 就可以了,不要先select * . where article_id = ?然后msql_num_rows.只傳送必須的SQL語(yǔ)句,比如修改文章的時(shí)候,如果用戶只修改了標(biāo)題,那就update . set title = ? where article_id = ?不要set content
5、 = ?(大文本)(6).必要的時(shí)候用不同的存儲(chǔ)引擎.比如InnoDB可以減少死鎖.HEAP可以提高一個(gè)數(shù)量級(jí)的查詢速度8、談?wù)勈聞?wù)處理A給B的賬戶轉(zhuǎn)賬50美元的例子9、apache+mysql+php實(shí)現(xiàn)最大負(fù)載的方法見(jiàn)710.實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。mb_substr()11.12.1314、用PHP寫(xiě)出顯示客戶端IP與服務(wù)器IP的代碼:1.在PHP中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量(1)中;而鏈接到當(dāng)前頁(yè)面的的前一頁(yè)面URL記錄在預(yù)定義變量(2)中?php/本頁(yè)地址,SCRIPT_NAME也可以:php/test.phpecho $_SERVERPHP_S
6、ELF.;/鏈接到當(dāng)前頁(yè)面的前一頁(yè)面的 URL 地址:echo $_SERVERHTTP_REFERER.;/其它的見(jiàn)參考手冊(cè):語(yǔ)言參考變量預(yù)定義變量/前執(zhí)行腳本的絕對(duì)路徑名:D:Inetpubwwwrootphp est.php echo $_SERVERSCRIPT_FILENAME.;echo $_SERVERREMOTE_ADDR.;/查詢(query)的字符串(URL 中第一個(gè)問(wèn)號(hào) ? 之后的內(nèi)容):id=1&bi=2echo $_SERVERQUERY_STRING.;/當(dāng)前運(yùn)行腳本所在的文檔根目錄:d:inetpubwwwrootecho $_SERVERDOCUMENT_ROO
7、T.;?2.執(zhí)行程序段將輸出_。?php/參考手冊(cè)語(yǔ)言參考運(yùn)算符算術(shù)運(yùn)算符%為取模運(yùn)算,輸出0echo 8%(-2).;/取模 $a % $b 在 $a 為負(fù)值時(shí)的結(jié)果也是負(fù)值。輸出-2echo (-8)%3).;/輸出2echo (8%(-3).;?3.在HTTP 1.0中,狀態(tài)碼 401 的含義是_;如果返回“找不到文件”的提示,則可用 header 函數(shù),其語(yǔ)句為_(kāi)。答:401表示未授權(quán);header(HTTP/1.0 404 Not Found);見(jiàn)參考手冊(cè)函數(shù)參考HTTP函數(shù)header4.數(shù)組函數(shù) arsort 的作用是_;語(yǔ)句 error_reporting(2047)的作用是_
8、。答:arsort:對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系 error_reporting(2047)的作用是:report All errors and warnings5.寫(xiě)出一個(gè)正則表達(dá)式,過(guò)慮網(wǎng)頁(yè)上的所有JS/VBS腳本(即把script標(biāo)記及其內(nèi)容都去掉):?php$script=以下內(nèi)容不顯示:alert(cc);echo preg_replace(/.*?.*?/si, 替換內(nèi)容, $script);?6.以Apache模塊的方式安裝PHP,在文件http.conf中首先要用語(yǔ)句_動(dòng)態(tài)裝載PHP模塊,然后再用語(yǔ)句_使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理。答:Lo
9、adModule php5_module c:/php/php5apache2.dll;AddType application/x-httpd-php .php7.語(yǔ)句 include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中,它們的區(qū)別是_;為了避免多次包含同一文件,可以用語(yǔ)句_來(lái)代替它們。答:在如何處理失敗時(shí),警告而 致命錯(cuò)誤;require_once()/include_once()8.一個(gè)函數(shù)的參數(shù)不能是對(duì)變量的引用,除非在php.ini中把_設(shè)為on.答:allow_call_time_pass_reference 9.SQL 中LEFT JOIN的含義是_,如果 tb
10、l_user記錄了學(xué)生的姓名(name)和學(xué)號(hào)(ID),tbl_score記錄了學(xué)生(有的學(xué)生考試以后被開(kāi)除了,沒(méi)有其記錄)的學(xué)號(hào)(ID)和考試成績(jī)(score)以及考試科目(subject),要想打印出各個(gè)學(xué)生姓名及對(duì)應(yīng)的的各科總成績(jī),則可以用SQL語(yǔ)句_.答:自然左外連接create database phpinterview;use phpinterviewcreate table tbl_user( ID int not null, name varchar(50) not null, primary key (ID);create table tbl_score( ID int no
11、t null, score dec(6,2) not null, subject varchar(20) not null);insert into tbl_user (ID, name) values (1, beimu);insert into tbl_user (ID, name) values (2, aihui);insert into tbl_score (ID, score, subject) values (1, 90, 語(yǔ)文);insert into tbl_score (ID, score, subject) values (1, 80, 數(shù)學(xué));insert into t
12、bl_score (ID, score, subject) values (2, 86, 數(shù)學(xué));insert into tbl_score (ID, score, subject) values (2, 96, 語(yǔ)文);select A.id,sum(B.score) as sumscorefrom tbl_user A left join tbl_score Bon A.ID=B.IDgroup by A.id10. 在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須_答:結(jié)束標(biāo)識(shí)符所在的行不能包含任何其它字符除;11.寫(xiě)一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾。pr
13、opertyName,例如:class myclass private $propertyName; public function _construct() $this-propertyName = value; 12.include 和 include_once 有什麼分別?require 又如何?三者都是用來(lái)在腳本中插入其他檔案,視乎 url_allow_fopen 是否核準(zhǔn),這個(gè)檔案可以從系統(tǒng)內(nèi)部或外部取得。但他們之間也有微細(xì)的分別:include():這個(gè)函式容許你在腳本中把同一個(gè)檔案插入多次,若果檔案不存在,它會(huì)發(fā)出系統(tǒng)警告並繼續(xù)執(zhí)行腳本。include_once():它跟 inc
14、lude() 的功能相似,正如它的名字所示,在腳本的執(zhí)行期間,有關(guān)檔案只會(huì)被插入一次。require():跟 include() 差不多,它也是用來(lái)在腳本中插入其他檔案,但若果檔案不存在,它會(huì)發(fā)出系統(tǒng)警告,這個(gè)警告會(huì)引致致命錯(cuò)誤令腳本中止執(zhí)行13.以下哪一個(gè)函式可以把瀏覽器轉(zhuǎn)向到另一個(gè)頁(yè)面?redir()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。header()這個(gè)是正確答案,header() 用來(lái)插入卷頭資料,可以用來(lái)使瀏覽器轉(zhuǎn)向到另一個(gè)頁(yè)面,例如:header(Location: /);location()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。redirect()這不是一個(gè) PHP 函
15、式,會(huì)引致執(zhí)行錯(cuò)誤。14.以下哪一個(gè)函式可以用來(lái)開(kāi)啟檔案以便讀寫(xiě)?fget()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。file_open()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。fopen()這是正確答案,fopen() 可以用來(lái)開(kāi)啟檔案以便讀寫(xiě),事實(shí)上這個(gè)函式還有很多選項(xiàng),詳細(xì)資料請(qǐng)參閱 。 open_file()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。15.mysql_fetch_row() 和 mysql_fetch_array() 有什麼分別?mysql_fetch_row() 把數(shù)據(jù)庫(kù)的一列儲(chǔ)存在一個(gè)以零為基數(shù)的陣列中,第一欄在陣列的索引 0,第二欄在索引 1,如此類推。my
16、sql_fetch_assoc() 把數(shù)據(jù)庫(kù)的一列儲(chǔ)存在一個(gè)關(guān)聯(lián)陣列中,陣列的索引就是欄位名稱,例如我的數(shù)據(jù)庫(kù)查詢送回first_name、last_name、email三個(gè)欄位,陣列的索引便是first_name、last_name和email。mysql_fetch_array() 可以同時(shí)送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。 16.下面的代碼用來(lái)做什麼?請(qǐng)解釋。$date=08/26/2003;print ereg_replace(0-9+)/(0-9+)/(0-9+),2/1/3,$date);這是把一個(gè)日期從 MM/DD/YYY
17、Y 的格式轉(zhuǎn)為 DD/MM/YYYY 格式。我的一個(gè)好朋友告訴我可以把這個(gè)正規(guī)表達(dá)式拆解為以下的語(yǔ)句,對(duì)於如此簡(jiǎn)單的表示是來(lái)說(shuō)其實(shí)無(wú)須拆解,純粹為了解說(shuō)的方便:/ 對(duì)應(yīng)一個(gè)或更多 0-9,後面緊隨一個(gè)斜號(hào)$regExpression = (0-9+)/;/ 應(yīng)一個(gè)或更多 0-9,後面緊隨另一個(gè)斜號(hào)$regExpression .= (0-9+)/;/ 再次對(duì)應(yīng)一個(gè)或更多 0-9$regExpression .= (0-9+);至於 2/1/3 則是用來(lái)對(duì)應(yīng)括號(hào),第一個(gè)括號(hào)對(duì)的是月份,第二個(gè)括號(hào)對(duì)應(yīng)的是日期,第三個(gè)括號(hào)對(duì)應(yīng)的是年份。17.給你一行文字 $string,你會(huì)如何編寫(xiě)一個(gè)正規(guī)表達(dá)式,
18、把 $string 內(nèi)的 HTML 標(biāo)籤除去?首先,PHP 有內(nèi)建函式 strip_tags() 除去 HTML 標(biāo)籤,為何要自行編寫(xiě)正規(guī)表達(dá)式?好了,便當(dāng)作是面試的一道考題吧,我會(huì)這樣回答:$stringOfText = This is a test;$expression = /(.*?)/;echo preg_replace($expression, 2, $stringOfText);/ 有人說(shuō)也可以使用 /(*)/ $expression = /(*)/;echo preg_replace($expression, , $stringOfText);18.PHP 和 Perl 分辨陣
19、列和散列表的方法有什麼差異?這正是為何我老是告訴別人選擇適當(dāng)?shù)木幊陶Z(yǔ)言,若果你只用一種語(yǔ)言的話你怎麼能回答這道問(wèn)題?這道問(wèn)題很簡(jiǎn)單,Perl 所有陣列變量都是以 開(kāi)頭,例如 myArray,PHP 則沿用 $ 作為所有變量的開(kāi)頭,例如 $myArray。至於 Perl 表示散列表則用 %,例如 %myHash,PHP 則沒(méi)有分別,仍是使用 $,例如 $myHash。19.你如何利用 PHP 解決 HTTP 的無(wú)狀態(tài)本質(zhì)?最主要的倆各選擇是 session 和 cookie。使用 session 的方法是在每一頁(yè)的開(kāi)始加上 session_start(),然後利用 $_SESSION 散列表來(lái)儲(chǔ)
20、存 session 變量。至於 cookie 你只需記著一個(gè)原則:在輸出任何文字之前調(diào)用 set_cookie() 函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 變量。還有一個(gè)不那麼可靠的方法,就是利用訪客的 IP 地址,這個(gè)方法有特定的危險(xiǎn)性。20.GD 函式庫(kù)用來(lái)做什麼?這個(gè)可能是我最喜歡的函式庫(kù),自從 PH 版本後 GD 便內(nèi)建在 PHP 系統(tǒng)中。這個(gè)函式庫(kù)讓你處理和顯示各式格式的圖檔,它的另一個(gè)常見(jiàn)用途是製作所圖檔。GD 以外的另一個(gè)選擇是 ImageMagick,但這個(gè)函式庫(kù)並不內(nèi)建於 PHP 之中,必須由系統(tǒng)管理員安裝在伺服器上。 21.試寫(xiě)出幾個(gè)輸出一
21、段 HTML 代碼的方法。嗯,你可以使用 PHP 中任何一種輸出語(yǔ)句,包括 echo、print、printf,大部分人都使用如下例的 echo:echo My string $variable;你也可以使用這種方法:echo ENDThis text is written to the screen as output and this $variable is parsed too. If you wanted you can have HTML tags in here as well. The END; remarks must be on a line of its own, and
22、 cant contain any extra white space.END;22.PHP 比 Perl 好嗎?請(qǐng)討論。我們不要為一個(gè)簡(jiǎn)單的問(wèn)題引發(fā)一場(chǎng)舌戰(zhàn),正如我經(jīng)常說(shuō)的:為工作選擇適合的語(yǔ)言,不要把工作遷就語(yǔ)言。我個(gè)人認(rèn)為 Perl 十分適合用作命令行工具,雖然它在網(wǎng)頁(yè)應(yīng)用上也有不錯(cuò)的表現(xiàn),但是它的真正實(shí)力在命令行上才能充分發(fā)揮。同樣地,PHP 雖然可以在控制臺(tái)的環(huán)境中使用,但是個(gè)人認(rèn)為它在網(wǎng)頁(yè)應(yīng)用上有更好的表現(xiàn),PHP 有大量專門為網(wǎng)頁(yè)應(yīng)用而設(shè)計(jì)的函式,Perl 則似乎以命令行為設(shè)計(jì)之本。個(gè)人來(lái)說(shuō)兩種語(yǔ)言我都喜歡,在大學(xué)期間我經(jīng)常使用 Perl、PHP 和 Java,可惜工作上我使用
23、C#,但在家裡我花不少時(shí)間操練 PHP、Perl、Ruby(現(xiàn)正學(xué)習(xí))和 Java,保持我的技能知識(shí)在最新?tīng)顟B(tài)。很多人問(wèn)我 C 和 C+ 怎麼樣,它們是否仍有機(jī)會(huì)在我的應(yīng)用中佔(zhàn)一席位,我的答案基本上是否,我近來(lái)的工作主要集中在網(wǎng)頁(yè)開(kāi)發(fā),雖然 C 和 C+ 也可以用來(lái)寫(xiě)網(wǎng)頁(yè),但它們到底不是為這種工作而設(shè)計(jì)的,為工作選擇適合的語(yǔ)言,若果我需要編寫(xiě)一個(gè)控制臺(tái)應(yīng)用,用來(lái)展示 bubble sort、quick sort 和 merge sort 的效能比較,我一定會(huì)使用 C / C+。若果我需要編寫(xiě)一個(gè)相片簿系統(tǒng),我會(huì)使用 PHP 或者 C#(我認(rèn)為製作用戶介面方面 .NET 語(yǔ)言比網(wǎng)頁(yè)更加)。 參考
24、:2007/01/17/1485528.aspx 2006/06/23/826204.aspx1 請(qǐng)說(shuō)明 PHP 中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用? 答: 傳值只是把某一個(gè)變量的值傳給了另一個(gè)變量,而引用則說(shuō)明兩者指向了同一個(gè)地方。 2 在PHP中error_reporting這個(gè)函數(shù)有什么作用? 答: The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that
25、level for the duration (runtime) of your script. 3 請(qǐng)用正則表達(dá)式(Regular Expression)寫(xiě)一個(gè)函數(shù)驗(yàn)證電子郵件的格式是否正確。答: EMAIL檢測(cè) function checkEmail(sText) var reg=/(?:w+.?)*w+(?:w+.?)*w+$/; var email=document.getElementById(sText).value; if(!reg.test(email) alert(電子郵件檢測(cè)失敗); else alert(電子郵件格式正確); form action= method=POS
26、T電子郵件:4 簡(jiǎn)述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。5 有一個(gè)一維數(shù)組,里面存儲(chǔ)整形數(shù)據(jù),請(qǐng)寫(xiě)一個(gè)函數(shù),將他們按從大到小的順序排列。要求執(zhí)行效率高。并說(shuō)明如何改善執(zhí)行效率。(該函數(shù)必須自己實(shí)現(xiàn),不能使用php函數(shù))?phpfunction BubbleSort(&$arr) $cnt=count($arr); $flag=1; for($i=0;$i$cnt;$i+) if($flag=0) return; $flag=0; for($j=0;$j$arr$j+1) $tmp=$arr$j; $arr$j=$arr$j+1; $arr$j+1=$tmp; $flag=1; $test
27、=array(1,3,6,8,2,7);BubbleSort($test);var_dump($test);?6 請(qǐng)舉例說(shuō)明在你的開(kāi)發(fā)過(guò)程中用什么方法來(lái)加快頁(yè)面的加載速度 答:要用到服務(wù)器資源時(shí)才打開(kāi),及時(shí)關(guān)閉服務(wù)器資源,數(shù)據(jù)庫(kù)添加索引,頁(yè)面可生成靜態(tài),圖片等大文件單獨(dú)服務(wù)器。使用代碼優(yōu)化工具啦Mysql部分1 創(chuàng)建poll表,用于記錄單選投票用戶的數(shù)據(jù)字段包括 id Autoincreace , ip , time , iid(用戶選則的選項(xiàng),int型)寫(xiě)出create上述table的完整sql語(yǔ)句drop table if exists poll;/*=*/* Table: poll */
28、*=*/create table poll( id int unsigned not null auto_increment, ip varchar(15) not null, time datetime not null, iid int not null, primary key (id)2 寫(xiě)出將一個(gè)選擇2號(hào)選項(xiàng)的ip為的用戶在當(dāng)前時(shí)間的投票記錄到數(shù)據(jù)庫(kù)的SQLinsert into poll (ip,time,iid) values(,now(),2);3 寫(xiě)出滿足下邊條件的SQL語(yǔ)句item表的結(jié)構(gòu)為 id(就是poll表中的iid) , descp(用戶選擇的選項(xiàng)的文字)請(qǐng)查詢并返
29、回10條記錄,包括ip和用戶選擇的選項(xiàng)的文字4 現(xiàn)在因?yàn)橥镀比藬?shù)太多,網(wǎng)站時(shí)常出現(xiàn)too many connection的錯(cuò)誤,請(qǐng)?zhí)峁┙鉀Q方案方法一:加大MySql的最大連接數(shù) mysql的最大連接數(shù)默認(rèn)是100, 這個(gè)數(shù)值對(duì)于并發(fā)連接很多的數(shù)據(jù)庫(kù)應(yīng)用是遠(yuǎn)遠(yuǎn)不夠的,當(dāng)連接請(qǐng)求大于默認(rèn)連接數(shù)后,就會(huì)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)的錯(cuò)誤,因此我們需要把它適當(dāng)調(diào)大一些,編輯my.ini 修改 max_connections=1000方法二,不用mysql數(shù)據(jù)庫(kù),改為直接寫(xiě)文件,詳細(xì)方法參照問(wèn)題5若非要用 mysql,還可方法三:由于用mysql語(yǔ)句調(diào)用數(shù)據(jù)庫(kù)時(shí),在每次之執(zhí)行語(yǔ)句前,會(huì)做一個(gè)臨時(shí)的變量用來(lái)打開(kāi)數(shù)據(jù)
30、庫(kù),所以你在使用mysql語(yǔ)句的時(shí)候,記得在每次調(diào)用完mysql之后就關(guān)閉mysql臨時(shí)變量5 在成功解決連接數(shù)的問(wèn)題后,發(fā)現(xiàn)程序運(yùn)行緩慢,經(jīng)查發(fā)現(xiàn)是mysql并發(fā)太多,表被鎖定的現(xiàn)象嚴(yán)重,請(qǐng)?zhí)峁┙鉀Q方案對(duì)于訪問(wèn)量大的,本來(lái)就不推薦使用數(shù)據(jù)庫(kù),可以考慮直接寫(xiě)到文本中,根據(jù)預(yù)測(cè)的訪問(wèn)量,先定義假若是100個(gè)文件文件名依次為1.txt,2.txt100.txt,每有用戶投票的時(shí)候,隨機(jī)往其中的一個(gè)文件中寫(xiě)入投票信息。統(tǒng)計(jì)的時(shí)候,再對(duì)所有文本文件中的數(shù)據(jù)進(jìn)行分析。必要的時(shí)候,再導(dǎo)入數(shù)據(jù)庫(kù)drop table if exists item;/*/*=*/*/* Table: item */*/*=*/
31、create table item( id int not null, descp varchar(200) not null, primary key (id);select A.ip,b.descpfrom poll A,item Bwhere A.id=B.idlimit 106 因?yàn)橛脩魧?shí)在太多,所以又分配給你兩臺(tái)服務(wù)器,你會(huì)如何來(lái)安排這3臺(tái)服務(wù)器?對(duì)于服務(wù)器分配,其實(shí)有好幾種方案(建議采用LINUX主機(jī)),先列出一個(gè)解決方案。1 考慮到電信,網(wǎng)通(南北差異)互訪問(wèn)速度慢的問(wèn)題,可以讓電信的用戶走電信的線,網(wǎng)通的走網(wǎng)通的線。大致可以這樣分配,國(guó)內(nèi)南方用戶(電信用戶)擁有一臺(tái) 服務(wù)器A;
32、北方用戶(網(wǎng)通用戶)擁有一臺(tái)服務(wù)器B。國(guó)外的用戶也可以考慮給一臺(tái)服務(wù)器C。用戶訪問(wèn)的時(shí)候,首先訪問(wèn)的是針對(duì)國(guó)外的服務(wù)器,那臺(tái)機(jī)器是電信 網(wǎng)通的用戶訪問(wèn)速度都差不多的(可以考慮就租用香港或是什么地方的),經(jīng)過(guò)服務(wù)器C判斷后直接跳到相應(yīng)的服務(wù)器。統(tǒng)計(jì)時(shí)三臺(tái)機(jī)器的數(shù)據(jù)合起來(lái)。7 現(xiàn)在開(kāi)始要求同一ip不能重復(fù)投票 ,請(qǐng)指出如何對(duì)數(shù)據(jù)表進(jìn)行相應(yīng)的修改ALTER TABLE phpinterview.poll ADD unique INDEX IX_poll_ip(ip);8. 原有數(shù)據(jù)已經(jīng)有很多重復(fù)ip的數(shù)據(jù)了,所以我們把它導(dǎo)出為一個(gè)txt,格式和上邊的poll一致,用TAB鍵間隔,請(qǐng)寫(xiě)一段程序,刪除i
33、p有重復(fù)的記錄,并統(tǒng)計(jì)每個(gè)投票選項(xiàng)的投票數(shù)?php/讀取文本并放入數(shù)組$apoll = file(c:1.txt);/對(duì)每一行數(shù)據(jù)進(jìn)行分割,從而獲取了一個(gè)二維數(shù)組for ($i=0;$icount($apoll);$i+) $poll$i = split( ,$apoll$i);/獲取IP、出現(xiàn)的次數(shù)數(shù)據(jù)$arrIP=array();for($i=0;$icount($poll);$i+) $arrIP$poll$i1=isset($arrIP$poll$i1)?$arrIP$poll$i1+1:1;/獲取選項(xiàng)、投票個(gè)數(shù)$arrRes=array();for($i=0;$imysql5.0測(cè)試
34、版:/*/*=得到測(cè)試數(shù)據(jù)c: .txt=*/SELECT *into outfile c: .txtFROM testok;/*/*=載入臨時(shí)表=*/create TABLE phpinterview.testok(id int,ip varchar(15),time datetime,iid int);LOAD DATA INFILE c: .txtinto table testok;/*/*=刪除ip有重復(fù)的記錄=*/delete A from testok A,(select ip from testok B group by ip having count(*) 1) Bwhere
35、A.ip=B.ip/*/*=統(tǒng)計(jì)每個(gè)投票選項(xiàng)的投票數(shù)=*/select iid,count(*) from testok B group by B.iid1、使用php寫(xiě)一段簡(jiǎn)單查詢,查出所有姓名為“張三”的內(nèi)容并打印出來(lái)表名User Name Tel Content Date 2006-10-112006-10-15張四中專畢業(yè) 2006-10-15請(qǐng)根據(jù)上面的題目完成代碼: $mysql_db=mysql_connect(local,root,pass);mysql_select_db(DB,$mysql_db);drop table if exists use
36、r;/*=*/* Table: user */*=*/create table user( Name varchar(20), Tel varchar(16), Content varchar(255), Date date)2006-10-11);2006-10-15);insert into user(name,tel,content,date) values(張四中專畢業(yè),2006-10-1);select * from user where name=張三;?phpheader(content-type:text/html; charset=gbk); $m
37、ysql_db=mysql_connect(localhost,root,);mysql_select_db(phpinterview,$mysql_db);echo ;mysql_query(set names gbk);$result=mysql_query(select Name,Tel,Content,Date from user where Name=張三) or die(錯(cuò)誤:.mysql_error();while($row=mysql_fetch_array($result,MYSQL_BOTH) echo .$rowName.$rowTel. $rowContent.$row
38、Date.;mysql_free_result($result);echo ?3、如何使用下面的類,并解釋下面什么意思?class testfunction Get_test($num)$num=md5(md5($num).En);return $num;Get_test(123);?4、用javascipt打印 “上海愛(ài)吉”JS打印 document.write(上海吉它);5、寫(xiě)出 SQL語(yǔ)句的格式 : 插入 ,更新 ,刪除select expressionfrom tablenamewhere conditiongroup by columns asc with rolluporder
39、by column asclimit offset,rowcount;insert into tablename(columname) values(exp);update tablename set columnname=exp where condition order by column limit rowcount;delete from tablename where condition order by column limit rowcount;一、PHP/MySQL編程 1) 某內(nèi)容管理系統(tǒng)中,表message有如下字段 id 文章id title 文章標(biāo)題 content 文
40、章內(nèi)容 category_id 文章分類id hits 點(diǎn)擊量 創(chuàng)建上表,寫(xiě)出MySQL語(yǔ)句2)同樣上述內(nèi)容管理系統(tǒng):表comment記錄用戶回復(fù)內(nèi)容,字段如下 comment_id 回復(fù)id id 文章id,關(guān)聯(lián)message表中的id comment_content 回復(fù)內(nèi)容 現(xiàn)通過(guò)查詢數(shù)據(jù)庫(kù)需要得到以下格式的文章標(biāo)題列表,并按照回復(fù)數(shù)量排序,回復(fù)最高的排在最前面文章id 文章標(biāo)題 點(diǎn)擊量 回復(fù)數(shù)量用一個(gè)SQL語(yǔ)句完成上述查詢,如果文章沒(méi)有回復(fù)則回復(fù)數(shù)量顯示為03) 上述內(nèi)容管理系統(tǒng),表category保存分類信息,字段如下 category_id int(4) not null auto
41、_increment; categroy_name varchar(40) not null; 用戶輸入文章時(shí),通過(guò)選擇下拉菜單選定文章分類 寫(xiě)出如何實(shí)現(xiàn)這個(gè)下拉菜單drop table if exists Comment;drop table if exists category;drop table if exists message;/*/*=*/*/* Table: Comment */*/*=*/create table Comment( comment_id int unsigned not null, id int unsigned not null, comment_conte
42、nt text, primary key (comment_id)type = InnoDB;/*/*=*/*/* Table: category */*/*=*/create table category( category_id int not null AUTO_INCREMENT, category_name varchar(40) not null, primary key (category_id), key AK_pk_category_id (category_id)type = InnoDB;/*/*=*/*/* Table: message */*/*=*/create t
43、able message( id int not null, title varchar(120) not null, content text not null, category_id int unsigned, hit int unsigned, primary key (id)type = InnoDB;select A.id,A.title,A.hits,IFNULL(B.num,0)from message A left join (select id,count(*) as num from comment B group by id) Bon A.id=B.idorder by
44、 B.num desc;JS打印?phpmysql_connect(localhost,root,) or die(db conn error:.mysql_error();mysql_select_db(phpinterview) or die(db error.mysql_error();$result=mysql_query(select category_id,category_name from category);while($row=mysql_fetch_array($result) echo .$rowcategory_name.;?1)內(nèi)容管理系統(tǒng):用戶提交內(nèi)容后,系統(tǒng)生成
45、靜態(tài)HTML頁(yè)面;寫(xiě)出實(shí)現(xiàn)的基本思路直接通過(guò)php寫(xiě)入文件,或使用模板來(lái)替換標(biāo)簽 2) 簡(jiǎn)單描述用戶修改以發(fā)布內(nèi)容的實(shí)現(xiàn)流程和基本思路 更新內(nèi)容,替換靜態(tài)文件3) 寫(xiě)出以下程序的輸出結(jié)果 $c?4:5; echo $a; ? 44) 寫(xiě)出以下程序的輸出結(jié)果 hotdogok 5)有一表 menu(mainmenu,submenu,url),請(qǐng)用遞歸法寫(xiě)出一樹(shù)形菜單,將所有的menu列出來(lái)JS打印?phpfunction GenerateMenu($id=0,$str=) $result=mysql_query(select mainmenu,url,submenu from menu wher
46、e mainmenu=$id); while($row=mysql_fetch_array($result) echo $str.$rowurl.; GenerateMenu($rowsubmenu,$str.-); mysql_free_result($result);$link=mysql_connect(localhost,root,);mysql_select_db(phpinterview);GenerateMenu();mysql_close($link)? 6)- 給你三個(gè)數(shù),寫(xiě)程序求出其最大值。$var1=1;$var2=7;$var3=8;$max=$var1$var2?$var1:$var2;$max=$max$var3?$max:$va
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷品運(yùn)輸承攬合同
- 融資策劃居間服務(wù)合同樣本
- 加油站裝修安全責(zé)任聲明
- 茶樓裝修工程人工費(fèi)協(xié)議
- 跨境電商物流延誤答辯狀
- 湖北藝術(shù)職業(yè)學(xué)院《油畫(huà)靜物》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度生態(tài)農(nóng)業(yè)發(fā)展貸款保證合同3篇
- 2025年房屋租賃合同律師解讀2篇
- 甘肅2025年甘肅省公安廳招聘輔警45人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年新建房屋買賣合同6篇
- 高考詩(shī)歌鑒賞專題復(fù)習(xí):題畫(huà)抒懷詩(shī)、干謁言志詩(shī)
- 2023年遼寧省交通高等專科學(xué)校高職單招(英語(yǔ))試題庫(kù)含答案解析
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評(píng)定方法
- GB/T 304.3-2002關(guān)節(jié)軸承配合
- 漆畫(huà)漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應(yīng)、運(yùn)輸、包裝說(shuō)明方案
- (完整版)英語(yǔ)高頻詞匯800詞
- 《基礎(chǔ)馬來(lái)語(yǔ)》課程標(biāo)準(zhǔn)(高職)
- IEC61850研討交流之四-服務(wù)影射
評(píng)論
0/150
提交評(píng)論