1.用php打印出前一天的時間格式是2006-5-10 22:21:21(2分)
echo date(“Y-m-d G:i:s”,strtotime(“-1 day”));
2.echo(),print(),print_r()的區別(3分)
- echo()是一個php語句,所以沒有返回值,能打印簡單的數據。
- print()是一個函數,有返回值,能打印簡單的數據。
- print_r()是一個函數,能打印複雜的(mix)數據。
如:
<? $value = print ‘hello word<br />’; echo “the value is $value<br />”; $arr = array(‘name’=>’nowamagic’,’qq’=>’123456′); print_r($arr); ?>
程序運行結果:
hello word the value is 1 Array ( [name] => nowamagic [qq] => 123456 ) ……
3.能夠使html和php分離開使用的模板(1分)
smarty模板
4.使用哪些工具進行版本控制?(1分)
TortoiseSVN
5.如何實現字符串翻轉?(3分)
strrev(“Hello world!”);
6.優化mysql數據庫的方法。(4分,多寫多得)
- 數據庫設計方面,這是DBA和Architect的責任,設計結構良好的數據庫,必要的時候,去正規化(英文是這個:denormalize,中文翻譯成啥我不知道),允許部分數據冗余,避免JOIN操作,以提高查詢效率
- 系統架構設計方面,表散列,把海量數據散列到幾個不同的表裏面.快慢表,快表只留最新數據,慢表是曆史存檔.集群,主服務器Read & write,從服務器read only,或者N台服務器,各機器互爲Master
- (1)和(2)超越PHP Programmer的要求了,會更好,不會沒關系.檢查有沒有少加索引
- 寫高效的SQL語句,看看有沒有寫低效的SQL語句,比如生成笛卡爾積的全連接啊,大量的Group By和order by,沒有limit等等.必要的時候,把數據庫邏輯封裝到DBMS端的存儲過程裏面.緩存查詢結果,explain每一個sql語句
- 所得皆必須,只從數據庫取必需的數據,比如查詢某篇文章的評論數,select count(*) … where article_id = ? 就可以了,不要先select * … where article_id = ?然後msql_num_rows.只傳送必須的SQL語句,比如修改文章的時候,如果用戶只修改了標題,那就update … set title = ? where article_id = ?不要set content = ?(大文本)
- 必要的時候用不同的存儲引擎.比如InnoDB可以減少死鎖.HEAP可以提高一個數量級的查詢速度
7.php的意思(送1分)
Hypertext Preprocessor
8.mysql取得當前時間的函數和格式化日期的函數(2分)
now() DATE_FORMAT(date, format) .
9.實現中文字串截取無亂碼的方法。(3分)
使用mbstring擴展庫的mb_substr()截取就不會出現亂碼了
10.請簡單闡述您最得意的開發之作(4分)
11.對于大流量的網站,您采用什麽樣的方法來解決訪問量問題?(4分)
12.用php寫出顯示客戶端ip與服務器ip的代碼(1分)
打印客戶端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv(‘REMOTE_ADDR’);
打印服務器IP:echo gethostbyname(“http://www.nowamagic.net/”)
13.語句include和require的區別是什麽?爲避免多次包含同一文件,可用(?)語句代替它們? (2分)
require 的使用方法如 require(“MyRequireFile.php”); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include(“MyIncludeFile.php”); 。這個函數一般是放在流程控制的處理部分中。PHP 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。
爲避免多次包含同一文件,可用require_once()/include_once()語句代替它們。
14.如何修改session的生存時間(1分).
<?php session_start(); // 保存一天 $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, “/”); ?>
15.有一個網頁地址 http://www.phpres.com/index.html,如何得到它的內容?($1分)
$contents = file_get_contents(“http://www.phpres.com/index.html”);
16.在http 1.0中,狀態碼401的含義是(?);如果返回”找不到文件”的提示,則可用 header 函數,其語句爲(?);(2分)
401表示未授權;
header(“HTTP/1.0 404 Not Found”);
17.在php中,heredoc是一種特殊的字符串,它的結束標志必須?(1分)
18.談談asp,php,jsp的優缺點(1分)
asp:簡單而易于維護,很適合小型網站應用,通過DCOM和MTS技術,ASP甚至還可以完成小規模的企業應用,但ASP的致命缺點就是不支持跨平台的系統,在大型項目開發和維護上非常困難。
PHP:語法簡單,非常易學易用,很利于快速開發各種功能不同的定制網站,PHP因爲結構上的缺陷,使的PHP在複雜的大型項目上的開發和維護都比較困難。
JSP:對于網站開發來講不像PHP和ASP那樣易學易用,支持JAVA的主機也少于支持PHP的主機,這從一定程度上限制了Java技術在網站上的發展,不過在企業軟件應用上來講,MVC還是擁有相當大的優勢的,雖然其配置和部署相對其他腳本語言來說要複雜一些,但對于跨平台的中大型企業應用系統來講,基于JAVA技術的MVC架構幾乎成爲唯一的選擇。
19.談談對mvc的認識(1分)
MVC (Model-View-Controller)模式,即模型-試圖-控制器模式,其核心思想是將整個程序代碼分成相對獨立而又能協同工作的3個組成部分,具體的功能如下:模型(Model):業務邏輯層。實現具體的業務邏輯、狀態管理的功能。視圖(View):表示層。就是與用戶實現交互的頁面,通常實現數據的輸入和輸出功能。控制器(Controller):控制層。起到控制整個業務流程的作用,實現View層跟Model層的協同工作。
20.寫出發貼數最多的十個人名字的sql,利用下表:members(id,username,posts,pass,email)(2分)
SELECT username FROM members GROUP BY id ORDER BY count(posts) DESC LIMIT 0 , 10
21.請說明php中傳值與傳引用的區別。什麽時候傳值什麽時候傳引用?(2分)
按值傳遞:函數範圍內對值的任何改變在函數外部都會被忽略。按引用傳遞:函數範圍內對值的任何改變在函數外部也能反映出這些修改
優缺點:按值傳遞時,php必須複制值。特別是對于大型的字符串和對象來說,這將會是一個代價很大的操作。按引用傳遞則不需要複制值,對于性能提高很有好處。
22.在php中error_reporting這個函數有什麽作用? (1分)
error_reporting() 設置 PHP 的報錯級別並返回當前級別。
23.請寫一個函數驗證電子郵件的格式是否正確 (2分)
function checkEmail(sText) { var reg=/^(?:w+.?)*w+@(?:w+.?)*w+$/; var email=document.getElementById(sText).value; if(!reg.test(email)) { alert(“電子郵件檢測失敗”); }
else { alert(“電子郵件格式正確”); } }
24.簡述如何得到當前執行腳本路徑,包括所得到參數。(2分)
echo $_SERVER[‘SCRIPT_FILENAME’].”?”.$_SERVER[‘QUERY_STRING’];
25.js表單彈出對話框函數是?獲得輸入焦點函數是? (2分)
1)alert(),prompt(),confirm()
2)focus()
26.js的轉向函數是?怎麽引入一個外部js文件?(2分)
window.location.href <script type=”text/javascript” src=”prototype.js”></script>
27.foo()和@foo()之間有什麽區別?(1分)
PHP 支持一個錯誤控制運算符:@。當將其放置在一個 PHP 表達式之前,該表達式可能産生的任何錯誤信息都被忽略掉。注意: @ 運算符只對表達式有效。對新手來說一個簡單的規則就是:如果能從某處得到值,就能在它前面加上 @ 運算符。例如,可以把它放在變量,函數和include()調用,常量,等等之前。不能把它放在函數或類的定義之前,也不能用于條件結構例如 if 和 foreach 等。
28.mysql_fetch_row() 和mysql_fetch_array之間有什麽區別? (1分)
mysql_fetch_row() 從和指定的結果標識關聯的結果集中取得一行數據並作爲數組返回。每個結果的列儲存在一個數組的單元中,偏移量從 0 開始。mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作爲關聯索引儲存,用字段名作爲鍵名。
29.下面哪個函數可以打開一個文件,以對文件進行讀和寫操作?(1分)C
(a) fget() (b) file_open() (c) fopen() (d) open_file()
30.下面哪個選項沒有將 john 添加到users 數組中? (1分) B
(a) $users[] = ‘john’; (b) array_add($users,’john’); (C) array_push($users,’john’); (d) $users ||= ‘john’;
31.下面的程序會輸入是否?(1分)
<?php $num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num; //輸出10 ?>
32.如何使用下面的類,並解釋下面什麽意思?(3)
class test{ function get_test($num){ $num=md5(md5($num).”en”); return $num; } }
雙重md5加密:
$testObject = new test(); $encryption = $testObject->Get_test(“xiaotian_ls”);
33.請寫出數據類型(int char varchar datetime text)的意思; 請問varchar和char有什麽區別(2分)
整形、固定長度字符型、可變長度字符型、時間型。char在保存的時候,後面(右邊)會用空格填充到指定的長度,在檢索的時候後面的空格會去
34.mysq自增類型(通常爲表id字段)必需將其設爲(?)字段(1分)
主鍵
35.寫出以下程序的輸出結果 (1分)
<? $b=201; $c=40; $a=$b>$c?4:5; echo $a; //輸出4 ?>
36.檢測一個變量是否有設置的函數?是否爲空的函數是?(2分)
isset();empty();
37.請寫出php5權限控制修飾符(3分)
默認的是public(公共) private(私有) protected(保護)
38.請寫出php5的構造函數和析構函數(2分)
如果你在一個類中聲明一個函數,命名爲__construct,這個函數將被當成是一個構造函數並在建立一個對象實例時被執行. 清楚地說,__是兩個下劃線. 就像其它任何函數一樣,構造函數可能有參數或者默認值. 你可以定義一個類來建立一個對象並將其屬性全放在一個語句(statement)中.你也可以定義一個名爲__destruct的函數,PHP將在對象被銷毀前調用這個函數. 它稱爲析構函數。