1、不用新變數直接交換現有兩個變數的值
(1)list($a,$b)=array($b,$a);(2)a=a+b,b=a-b,a=a-b
2、PHP 數字金額轉大小格式,同時說明思路
function daxie($num){ $da_num = array('零','一','二','三','四','五','六','七','八','九'); $return = ''; $len_num = strlen($num); if(!is_numeric($num) || $len_num < 0){ return ''; } for($i=0;$i<$len_num;$i++){ $return .= $da_num[ substr($num,$i,1)]; } return $return; }
3.SQL查詢語句如下:
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44)
讓結果按10,32,22,76,13,44的順序檢索出來,請問如何書寫?
select * from tablewhere id in (10,32,22,76,13,44) order by charindex(id,'10,32,22,76,13,44') desc
4.用PHP列印出前一天的時間,格式是2006-5-10 22:21:21
(1)echo date('Y-m-d H:i:s',time()-60*60*24);(2)echo date('Y-m-d H:i:s',strtotime('-1 day'))
5. echo(),print(),print_r()的區別
echo是語言結構,無傳回值;print功能和echo基本相同,不同的是print是函數,有傳回值;print_r是遞迴列印,用於輸出數組或對象
6.能夠使HTML和PHP分離開使用的模板
PHP本身是一種模版引擎,我用過的是smarty,常見的還有PHPLib,FastTemplate,Savant
7.如何?PHP、JSP互動?
題目有點含糊不清,SOAP,XML_RPC,Socket function,CURL都可以實現這些,如果是考PHP和Java的整合,PHP內建了這種機制(如果考PHP和.NET的整合,也可以這麼回答),例如$foo = new Java('java.lang.System');
8.使用哪些工具進資料列版本設定?
CVS和SVN,SVN號稱下一代CVS,功能強大,不過CVS是老牌,市佔率很高.我一直用SVN,題目是問用什麼工具,呃,這個可能需要這麼回答:CVS Server on Apache作服務端,WinCVS作用戶端;Subversion on Apache/DAV 做服務端,TortoiseSVN做用戶端,或者Subclipse做用戶端
9.如何?字串翻轉?
其實PHP本身就有字串翻轉的函數:strrev(),不過這種方法都不能解決中文字串翻轉的問題,會出錯的。
10.最佳化MYSQL資料庫的方法
(1).資料庫設計方面,這是DBA和Architect的責任,設計結構良好的資料庫,必要的時候,去正規化(英文是這個:denormalize), 允許部分資料冗餘,避免JOIN操作,以提高查詢效率(2).系統架構設計方面,表散列,把海量資料散列到幾個不同的表裡面.快慢表,快表只留最新資料,慢表是曆史存檔.叢集,主伺服器Read & write, 從伺服器read only,或者N台伺服器,各機器互為Master(3).(1)和(2)超越PHP Programmer的要求了,會更好,不會沒關係.檢查有沒有少加索引(4).寫高效的SQL語句,看看有沒有寫低效的SQL語句,比如產生笛卡爾積的全串連啊,大量的Group By和order by,沒有limit等等. 必要的時候,把資料庫邏輯封裝到DBMS端的預存程序裡面.緩衝查詢結果,explain每一個sql語句(5).所得皆必須,只從資料庫取必需的資料,比如查詢某篇文章的評論數,select count(*) … where article_id = ? 就可以了,不要先select * … where article_id = ?然後msql_num_rows. 只傳送必須的SQL語句,比如修改文章的時候,如果使用者只修改了標題,那就update … set title = ? where article_id = ? 不要set content = ?(大文本)(6).必要的時候用不同的儲存引擎.比如InnoDB可以減少死結.HEAP可以提高一個數量級的查詢速度
11.談談交易處理
A給B的賬戶轉賬50美元的例子
12.apache+mysql+php實現最大負載的方法
參考第10題。
13.實現中文字串截取無亂碼的方法
(1)mb_substr()(2)function GBsubstr($string, $start, $length) { if(strlen($string)>$length){ $str=null; $len=$start+$length; for($i=$start;$i<$len;$i++){ if(ord(substr($string,$i,1))>0xa0){ $str.=substr($string,$i,2); $i++; }else{ $str.=substr($string,$i,1); } } return $str; }else{ return $string; }}
14.用PHP寫出顯示用戶端IP與伺服器IP的代碼:
echo '用戶端IP:'.$_SERVER['REMOTE_ADDR'].'
';echo '伺服器端IP:'.gethostbyname($_SERVER['SERVER_NAME']);
15.在PHP中,當前指令碼的名稱(不包括路徑和查詢字串)記錄在預定義變數(1)中;而連結到當前頁面的URL記錄在預定義變數(2)中。
前執行指令碼的絕對路徑名(3),正在瀏覽當前頁面使用者的 IP 位址(4),查詢(query)的字串(URL 中第一個問號 ? 之後的內容):id=1&bi=2(5),當前運行指令碼所在的主目錄(6)。
(1)$_SERVER['SCRIPT_FILENAME'];或者$_SERVER['PHP_SELF'](2)$_SERVER['HTTP_REFERER'](3)$_SERVER['SCRIPT_FILENAME'];(4)$_SERVER['REMOTE_ADDR'];(5)$_SERVER['QUERY_STRING'];(6)$_server['DOCUMENT_ROOT'];
16.執行程式段 將輸出__。
(1)echo 8%(-2)。輸出:0(2)echo (-8)%3 .輸出:-2(3)echo 8%(-3).輸出:2
17.在HTTP 1.0中,狀態代碼 401 的含義是____;如果返回“找不到檔案”的提示,則可用 header 函數,其語句為____。
(1)401表示未授權;(2)header(“HTTP/1.0 404 Not Found”);[
18.數組函數 arsort 的作用是____;語句 error_reporting(2047)的作用是____。
arsort:對數組進行逆向排序並保持索引關係 error_reporting(2047)的作用是:report All errors and warnings
19.寫出一個Regex,過慮網頁上的所有JS/VBS指令碼(即把script標記及其內容都去掉):
$a="";echo preg_replace('/\]*?>.*<\/script\>/is','',$a);
20.以Apache模組的方式安裝PHP,在檔案http.conf中首先要用語句____動態裝載PHP模組,
然後再用語句____使得Apache把所有副檔名為php的檔案都作為PHP指令碼處理。
LoadModule php5_module "c:/php/php5apache2.dll";AddType application/x-httpd-php .php
21.語句 include 和 require 都能把另外一個檔案包含到當前檔案中,它們的區別是____;為了避免多次包含同一檔案,可以用語句____來代替它們。
在如何處理失敗時,include() 產生一個警告而 require() 則導致一個致命錯誤;require_once()/include_once()
22.一個函數的參數不能是對變數的引用,除非在php.ini中把____設為on
allow_call_time_pass_reference boolean :是否啟用在函數調用時強制參數被按照引用傳遞
23..SQL 中LEFT JOIN的含義是__,如果 tbl_user記錄了學生的姓名(name)和學號(ID),
tbl_score記錄了學生(有的學生考試以後被開除了,沒有其記錄)的學號(ID)和考試成績(score)以及考試科目(subject),要想列印出 各個學生姓名及對應的的各科總成績,則可以用SQL語句____.
答:自然左外串連create database phpinterview;use phpinterviewcreate table tbl_user(ID int not null PRIMARY KEY,name varchar(50) not null,primary key (ID));create table tbl_score(ID int not 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, '語文');insert into tbl_score (ID, score, subject) values (1, 80, '數學');insert into tbl_score (ID, score, subject) values (2, 86, '數學');insert into tbl_score (ID, score, subject) values (2, 96, '語文');select A.id,sum(B.score) as sumscorefrom tbl_user A left join tbl_score Bon A.ID=B.IDgroup by A.id
24.在PHP中,heredoc是一種特殊的字串,它的結束標誌必須____
結束標識符所在的行不能包含任何其它字元除";"
25.寫一個函數,能夠遍曆一個檔案夾下的所有檔案和子檔案夾。
26.類的屬性可以序列化後儲存到 session 中,從而以後可以恢複整個類,這要用到的函數是
serialize() /unserialize()