php面試題
PHP即“超文本預處理器”,是一種通用開源腳本語言。PHP是在服務器端執行的腳本語言,與C語言類似,是常用的網站編程語言。PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。利于學習,使用廣泛,主要適用于Web開發領域。
php面試題1
面試題1
1、用PHP打印出前一天的時間格式是20xx-5-1022:21:21
2、echo(),print(),print_r()的區別
3、能夠使HTML和PHP分離開使用的模板
4、如何實現PHP、JSP交互?
5、使用哪些工具進行版本控制?
6、如何實現字符串翻轉?
7、優化MYSQL數據庫的方法。
8、談談事務處理
9、apache+mysql+php實現最大負載的方法
10、實現中文字串截取無亂碼的方法。
面試題2
var$empty=';
var$null=NULL;
var$bool=FALSE;
var$notSet;
var$array=array();
1.
$a="hello";
$b=&$a;
unset($b);
$b="world";
whatis$a?
2.
$a=1;
$x=&$a;
$b=$a++;
whatis$b?
3.
$x=empty($array);
whatis$x?trueorfalse
4.您是否用過版本控制軟件?如果有您用的版本控制軟件的名字是?
5.您是否用過模板引擎?如果有您用的模板引擎的名字是?
6.請簡單闡述您最得意的開發之作.
7.對于大流量的網站,您采用什么樣的方法來解決訪問量問題?
8.用PHP寫出顯示客戶端IP與服務器IP的代碼:
面試題3
一、PHP/MySQL編程
1)某內容管理系統中,表message有如下字段
id文章id
title文章標題
content文章內容
category_id文章分類id
hits點擊量
創建上表,寫出MySQL語句
2)同樣上述內容管理系統:表comment記錄用戶回復內容,字段如下
comment_id回復id
id文章id,關聯message表中的id
comment_content回復內容
現通過查詢數據庫需要得到以下格式的文章標題列表,并按照回復數量排序,回復最高的排在最前面
文章id文章標題點擊量回復數量
用一個SQL語句完成上述查詢,如果文章沒有回復則回復數量顯示為0
3)上述內容管理系統,表category保存分類信息,字段如下
category_idint(4)notnullauto_increment;
categroy_namevar40)notnull;
用戶輸入文章時,通過選擇下拉菜單選定文章分類
寫出如何實現這個下拉菜單
二、PHP文件操作
1)
上述內容管理系統:用戶提交內容后,系統生成靜態HTML頁面;寫出實現的基本思路
2)簡單描述用戶修改以發布內容的實現流程和基本思路
三、PHP程序
1)寫出以下程序的輸出結果
<?
$b=201;
$c=40;
$a=$b>$c?4:5;
echo$a;
?>
2)寫出以下程序的輸出結果
<?
$str="cd";
$$str="hotdog";
$$str.="ok";
echo$cd;
?>
面試題4
一.簡答題
1.請說明php中傳值與傳引用的區別。什么時候傳值什么時候傳引用?
2.在PHP中error_reporting這個函數有什么作用?
3.請寫一個函數驗證電子郵件的格式是否正確
4.如何修改SESSION的生存時間.
5.有一個一維數組,里面存儲整形數據,請寫一個函數,將他們按從大到小的順序排列。要求執行效率高。并說明如何改善執行效率。(該函數必須自己實現,不能使用php函數)
6.請舉例說明在你的開發過程中用什么方法來加快頁面的加載速度。
二.數據庫設計題:
請設計一套圖書館借書管理系統的數據庫表結構;可以記錄基本的用戶信息、圖書信息、借還書信息;數據表的個數不超過6個;請畫表格描述表結構(需要說明每個字段的字段名、字段類型、字段含義描述);
在數據庫設計中應:
1.保證每個用戶的唯一性;
2.保證每種圖書的唯一性;每種圖書對應不等本數的多本圖書;保證每本圖書的唯一性;
3.借書信息表中,應同時考慮借書行為與還書行為,考慮借書期限;
4.保證借書信息表與用戶表、圖書信息表之間的參照完整性;
5.限制每個用戶最大可借書的本數
6.若有新用戶注冊或新書入庫,保證自動生成其唯一性標識
7.為以下的一系列報表需求提供支持:
。o特定說明,不需編寫實現語句,而需在數據庫設計中,保證這些報表可以用最多一條SQL語句實現)
a)日統計報表:當日借書本數、當日還書本數報表;
b)實時報表:
i.當前每種書的借出本數、可借本數;
ii.當前系統中所有超期圖書、用戶的列表及其超期天數
iii.當前系統中所有用戶借書的本數,分用戶列出(包括沒有借書行為的用戶);請編寫實現此需求的SQL語句:
數據庫應用:
請撰寫一系列的SQL語句,分別描述完整的借書行為與還書行為;并保證這一系列的SQL語句的執行完整性
下題是測驗能力之最重要測試,如不能完成我們將無法給出評判結果!所以請寫出詳細的回答,并保證答案是可以執行的程序。在兩日內將結果通過電子郵件寄到hr@88keke.com郵箱
結合第二題中你的設計,用一種數據庫實現,要求使用三層結構或者多層結構,要求采用面向對象的思想進行編程,有可能的話,設計一套模板機制來實現之。
功能:列出當前借出圖書的情況,按日期排列
編號用戶姓名書名書的編號借出日期
1.張進大染坊125765872004-9-1
2.劉興西游記321310982004-9-2
……
面試題5
1.在PHP中,當前腳本的名稱(不包括路徑和查詢字符串)記錄在預定義變量(1)中;而鏈接到當前頁面的URL記錄在預定義變量(2)中。
2.執行程序段將輸出(3)。
3.在HTTP1.0中,狀態碼401的含義是(4);如果返回“找不到文件”的提示,則可用header函數,其語句為(5)。
4.數組函數arsort的作用是(6);語句error_reporting(20xx)的作用是(7)。
5.PEAR中的數據庫連接字符串格式是(8)。
6.寫出一個正則表達式,過慮網頁上的所有JS/VBS腳本(即把script標記及其內容都去掉):(9)。
7.以Apache模塊的方式安裝PHP,在文件http.conf中首先要用語句(10)動態裝載PHP模塊,然后再用語句(11)使得Apache把所有擴展名為php的文件都作為PHP腳本處理。
8.語句include和require都能把另外一個文件包含到當前文件中,它們的區別是(12);為了避免多次包含同一文件,可以用語句(13)來代替它們。
9.類的屬性可以序列化后保存到session中,從而以后可以恢復整個類,這要用到的函數是(14)。
10.一個函數的參數不能是對變量的引用,除非在php.ini中把(15)設為on.
11.SQL中LEFTJOIN的含義是(16)。如果tbl_user記錄了學生的姓名(name)和學號(ID),tbl_score記錄了學生(有的學生考試以后被開除了,沒有其記錄)的學號(ID)和考試成績(score)以及考試科目(subject),要想打印出各個學生姓名及對應的的各科總成績,則可以用SQL語句(17)。
12.在PHP中,heredoc是一種特殊的字符串,它的結束標志必須(18)。
13.寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。
14.簡述論壇中無限分類的實現原理。
15.設計一個網頁,使得打開它時彈出一個全屏的窗口,該窗口中有一個文本框和一個按鈕。用戶在文本框中輸入信息后點擊按鈕就可以把窗口關閉,而輸入的信息卻在主網頁中顯示。
面試題6
有一表menu(mainmenu,submenu,url),請用遞歸法寫出一樹形菜單,將所有的menu列出來。
面試題7
1-給你三個數,寫程序求出其最大值。
2-談談asp,php,jsp的優缺點
3-談談對mvc的認識
4-寫出發貼數最多的十個人名字的SQL,利用下表:
members(id,username,posts,pass,email)
面試題8
1-如何通過javascript判斷一個窗口是否已經被屏蔽。
2-寫出session的運行機制
3-有一數組$a=array(4,3,8,9,2);請將其重新排序,按從小到大的順序列出。
4-防止SQL注射漏洞一般用_____函數。
5-查詢在線人數,并能處理異常掉線的SQL
php面試題2
PHP面試題:
簡答題:
1. 簡述Linux下安裝PHP的過程?
2. 簡述Linux下安裝Mysql的過程?
3. 簡述Linux下安裝apache的過程?
4. 監視一個日志文件a.log 的最新內容?
5. 查看當前服務器的HTTP連接有哪些?
6. 說說Linux下的find命令和grep命令的區別?
7. 如何實現每天0點鐘重新啟動服務器?
8. 請寫出5個常用的unix操作命令?
9. rm -rf * 是什么意思,其中 f 有什么作用?
10. Linux壓縮文件和解壓文件的命令?
11. Linux的目錄進行遍歷,編寫shell腳本?
12. apache默認使用進程管理還是線程管理?如何判斷并設置最大連接數?
13. 當前目錄下有一個文件為 showme.sh , 如何修改文件,將其指定為使用 /bin/bash 運
行,如何修改其權限為所有用戶可讀寫,所有用戶可執行?
14. 當前目錄下有一個文件為 showme.sh,如何修改其所有人為root?
15. 在linux 請寫出一種自動定時備份某一個文件的方法和具體實施流程,要求每天凌晨3點的時候備份一次。
php面試題3
精選php面試題及答案
一、基礎題
1. 寫出如下程序的輸出結果
<?php $str1 = null;
$str2 = false;
echo $str1==$str2 ? 相等 : 不相等;
$str3 = ;
$str4 = 0;
echo $str3==$str4 ? 相等 : 不相等;
$str5 = 0;
$str6 = 0;
echo $str5===$str6 ? 相等 : 不相等;?>
2. 寫出如下程序的輸出結果
<?php $a1 = null;
$a2 = false;
$a3 = 0;
$a4 = ;
$a5 = 0;
$a6 = null;
$a7 = array();
$a8 = array(array());
echo empty($a1) ? true : false;
echo empty($a2) ? true : false;
echo empty($a3) ? true : false;
echo empty($a4) ? true : false;
echo empty($a5) ? true : false;
echo empty($a6) ? true : false;
echo empty($a7) ? true : false;
echo empty($a8) ? true : false;?>
3. 寫出如下程序的輸出結果
<?php $test = aaaaaa;
$abc = & $test;
unset($test);
echo $abc;?>
4. 寫出如下程序的輸出結果
<?php $count = 5;
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();?>
5. 寫出如下程序的輸出結果
<?php $GLOBALS[var1] = 5;
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++;
}
get_value();
echo $var1;
echo $var2;?>
6. 寫出如下程序的輸出結果
<?php function get_arr($arr){
unset($arr[0]);
}
$arr1 = array(1, 2);
$arr2 = array(1, 2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);?>
7. 使用五種以上方式獲取一個文件的擴展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必須使用PHP自帶的處理函數進行處理,方法不能明顯重復,可以封裝成函數,比如 get_ext1($file_name), get_ext2($file_name)
二、算法題
1. 使用PHP描述冒泡排序和快速排序算法,對象可以是一個數組
2. 使用PHP描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對象可以是一個有序數組
3. 寫一個二維數組排序算法函數,能夠具有通用性,可以調用php內置函數【答案】
。ㄒ韵麓鸢覆灰欢ㄊ亲詈玫,只是一個簡單的參考)
騰訊php面試題
php程序員一般會遇到的面試題:
1. 基本知識點
HTTP協議中幾個狀態碼的含義:503 500 401 200 301 302
Include require include_once require_once 的區別.
PHP/Mysql中幾個版本的進化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改進等。
HEREDOC介紹
寫出一些php魔幻方法;
一些編譯php時的configure 參數
向php傳入參數的兩種方法。
(mysql)請寫出數據類型(int char varchar datetime text)的意思; 請問varchar和char有什么區別;
error_reporting 等調試函數使用
您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?
posix和perl標準的正則表達式區別;
Safe_mode 打開后哪些地方受限.
寫代碼來解決多進程/線程同時讀寫一個文件的問題。
寫一段上傳文件的代碼。
Mysql 的存儲引擎,myisam和innodb的區別。
2. web 架構,安全,項目經驗
介紹xdebug,apc,eAccelerator,Xcache,Zend opt的使用經驗。
使用mod_rewrite,在服務器上沒有/archivers/567.html這個物理文件時,重定向到index.php?id=567 ,請先打開mod_rewrite.
關于PHP面試題的分享
1、 用PHP打印出前一天的時間,格式是2014-6-07 00:25:10
2、 簡述echo(),print(),print_r()的區別
3、 能夠使HTML和PHP分離開使用的模板是什么?
4、 使用哪些工具進行版本控制?
5、 如何實現字符串翻轉?
6、 優化mysql數據庫的方法。
7、 Php的意思
8、 Mysql取得當前時間的函數是?格式化日期的函數是?
9、 實現中文字串截取無亂碼的方法
10、 已知$a = "hello";$b = &$a;unset($b);$b = "world";問$a是多少,$b是多少?
11、 已知$array = array();$x = empty($array);問$x是什么?什么樣的內容為空?
12、 用PHP寫出顯示客戶端IP與服務器IP的代碼
13、 1echo 8%(-2)的結果值是多少?
14、 有一數組 $a=array(3,2,4,9,8);請將其重新排序,按從小到大的順序列出。
15、 如何聲明一個名為”myclass”的沒有方法和屬性的類?如何實例化一個名
為”myclass”的對象?
16、 如何訪問和設置一個類的屬性?
17、 如何使用下面的類,并解釋下面什么意思?
class Mymd5
{
function get_md5($str)
php面試題?
1.以下哪一句不會把 John 新增到 users 陣列?
$users[] = john;
成功把 John 新增到陣列 users。
array_add($users,’john’);
函式 array_add() 無定義。
array_push($users,‘john’);
成功把 John 新增到陣列 users。
$users ||= john;
語法錯誤。
2.sort()、assort()、和 ksort() 有什么分別?它們分別在什么情況下使用?
sort()
根據陣列中元素的值,以英文字母順序排序,索引鍵會由 0 到 n-1 重新編號。主要是當陣列索引鍵的值無關疼癢時用來把陣列排序。
assort()
PHP 沒有 assort() 函式,所以可能是 asort() 的筆誤。
asort()
與 sort() 一樣把陣列的元素按英文字母順序來排列,不同的是所有索引鍵都獲得保留,特別適合替聯想陣列排序。
ksort()
根據陣列中索引鍵的值,以英文字母順序排序,特別適合用于希望把索引鍵排序的`聯想陣列。
3.以下的代碼會產生什么?為什么?
$num =10;
function multiply(){
$num =$num *10;
}
multiply();
echo $num;
由于函式 multiply() 沒有指定 $num 為全域變量(例如 global $num 或者 $_GLOBALS[num]),所以 $num 的值是 10。
騰訊php程序員面試題目及答案
設計任務:
1、最近總有人騷擾我們的投票模塊,需要你來設計一個投票限制的東東
要求如下:
1)要求每個QQ號碼(假設此QQ號碼在UNIT32 內可以表示)10分鐘這內只能投5票。
2)我們的用戶很踴躍,平均每天要有2000萬人左右通過此程序投票。
說明:
1)無需寫代碼,只需要圖跟文字即可。
2)對于關鍵邏輯,請用圖加代碼表示出來,這也是對你文字表達能力的一個考驗。
3)對你能想到的所有的邊界條件列出來,這是對你邏輯思維全面與敏捷性的考驗。
4)存儲部分,盡你所能吧。如果,你需要一個自己設計的存儲層,那么把這個存儲層的實現,用文字+圖片方式描述清楚,要是設計合理,你會獲得華麗的`獎分.
解答:
核心問題:如何統計10分鐘之內投了5票?
首先:以秒為鍵切分數據集,10*60=600個時間戳桶,并添加一個Forbid令牌桶
然后:每個數據集內,以qq號碼為鍵,vote次數為值
OK,已經成功轉換為key-value方式存儲,2000萬的日投票,除以86400秒,并發231.48rps,使用memcache能夠輕松勝任。
數據集ID:201006072134
【QQ號碼:Vote次數】
201006072134 | 201006072135 | 201006072136
【12345:3】 | 【12345:3】 | 【12345:3】
【88888:2】 | 【88888:3】 | 【88888:3】
php程序員面試題
請列舉你能想到的UNIX信號,并說明信號用途。
請列舉、你能想到的所有的字符串查找算法,并加注釋簡單說明。
有一個IP地址(192.168.0.1),請寫出其32位無符號整數形式。
寫出、你能想到的所有HTTP返回狀態值,并說明用途(比如:返回404表示找不到頁面)
向php傳入參數的兩種方法。
(mysql)請寫出數據類型(int char varchar datetime text)的`意思; 請問varchar和char有什么區別;
error_reporting 等調試函數使用
您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?
posix和perl標準的正則表達式區別;
Safe_mode 打開后哪些地方受限.
您是否用過模板引擎? 如果有您用的模板引擎的名字是?
請介紹Session的原理,大型網站中Session方面應注意什么?
測試php性能和mysql數據庫性能的工具,和找出瓶頸的方法。
您寫過的PHP框架的特點,主要解決什么問題,與其他框架的不同點。
sort()、assort()、和 ksort() 有什么分別?它們分別在什么情況下使用?
reference 跟一個正規的變量有什么分別?如何 pass by reference?在什么情況下我們需要這樣做?
你如何替 PHP 的應用程式偵錯?
百度php面試題
1.解釋下面語句的意思document.form["formName"].submit;
2.將字符09轉換成十進制數字。
3.將1234567890轉換成1,234,567,890 每3位用逗號隔開的`形式。
4.Ajax,數據庫觸發器GUI中斷機制的共同思想。談一談該種思想機制。
5.數據庫優化
有一個表 PRODUCT(ID,NAME,PRICE,COUNT); 在執行一下查詢的時候速度總是很慢 SELECT * FROM PRODUCT WHERE PRICE=100; 在price字段上加上一個非聚簇索引查詢速度還是很慢。
1分析查詢慢的原因。
2如何進行優化。
6.一組隨機數學的數列,對其重新進行排序,要求實現:奇數位保持奇數,偶數位保持偶數.
12個被提問頻率最高的php面試題及應答技巧
1、問題:請用最簡單的語言告訴我php是什么?
回答:php全稱:hypertext preprocessor,是一種用來開發動態網站的服務器腳本語言。
2、問題:什么是mvc?
回答:mvc由model(模型), view(視圖)和controller(控制器)組成,php mvc可以更高效地管理好3個不同層的php代碼。
model:數據信息存取層。
view:view層負責將應用的數據以特定的方式展現在界面上。
controller:通?刂破髫撠煆囊晥D讀取數據,控制用戶輸入,并向模型發送數據。
3、問題:在頁面中引用css有幾種方式?
回答:在頁面中使用css有3中方式:
引用外部css文件
內部定義style樣式
內聯樣式
4、問題:php支持多繼承嗎?
回答:不可以。php類只能繼承一個父類,并用關鍵字“extended”標識。
5、問題:請問php中echo和print有什么區別?
這兩個看起來很相似,因為它們都是將一些值打印在屏幕上。但是echo和print的本質區別在于:echo用來輸出字符串,顯示多個值的時候可以用逗號隔開。只支持基本類型,print不僅可以打印字符串值,而且可以打印函數的返回值。
6、問題:請問get和post方法有什么區別?
回答:我們再網頁上填寫的.表單信息都可以通過這兩個方法將數據傳遞到服務器上,當我們使用get方法是,所有的信息都會出現在url地址中,并且使用get方法最多只能傳遞1024個字符,所以如果在傳輸量小或者安全性不那么重要的情況下可以使用get方法。說到post方法,最多可以傳輸2mb字節的數據,而且可以根據需要調節。
php面試題
1.寫一個排序算法,可以是冒泡排序或者是快速排序,假設待排序對象是一個維數組。(提示:不能使用系統已有函數,另外請仔細回憶以前學習過的基礎知識)
2.實現一個字符串截取的函數,類似于substr,必須能夠截取中文這種多字節編碼。假設每個中文也是一個字符,普通的數字、符號、字母也是一個字符。(提示:GB編碼的中文字符高位范圍是 0x81-0xFE )
3.寫一個遍歷指定目錄下所有子目錄和子文件的函數(提示:可以使用遞歸的方法)
4.出五種以上你使用過的PHP的擴展的名稱(提示:常用的PHP擴展)
5.了解MVC模式嗎?請寫出三種以上目前PHP流行的MVC框架名稱(不區分大小寫)
6.寫出15個以上你所知道的常用的Linux命令和它的功能
7.使用過Vim編輯器嗎?如果使用過,如何在vim里切分多個可視化窗口,包括橫排和縱排。(本題選作)
8.說說Linux下的find命令和grep命令的區別(本題選作)
9.請描述出七層網絡模型的'名稱,由下到上(可以使用中文描述)
10.php包含外部文件的函數有哪些?
include() ; include_once(); require(); require_once();
11.php防止sql注入式攻擊,用什么函數轉換字符串?答案:addslashes();
12.你常用的php字符串函數?答案:substr(),strtolower(),ucwords(),ucfirst(),strtoupper(),implode(),explode(),str_replace(),strpos(),strrev()
PHP工程師常見面試題及回答技巧
1、問題:請用最簡單的語言告訴我php是什么?
回答:php全稱:hypertext preprocessor,是一種用來開發動態網站的服務器腳本語言。
2、問題:什么是mvc?
回答:mvc由model(模型), view(視圖)和controller(控制器)組成,php mvc可以更高效地管理好3個不同層的php代碼。
model:數據信息存取層。
view:view層負責將應用的數據以特定的方式展現在界面上。
controller:通?刂破髫撠煆囊晥D讀取數據,控制用戶輸入,并向模型發送數據。
3、問題:在頁面中引用css有幾種方式?
回答:在頁面中使用css有3中方式:
引用外部css文件
內部定義style樣式
內聯樣式
4、問題:php支持多繼承嗎?
回答:不可以。php類只能繼承一個父類,并用關鍵字“extended”標識。
5、問題:請問php中echo和print有什么區別?
這兩個看起來很相似,因為它們都是將一些值打印在屏幕上。但是echo和print的本質區別在于:echo用來輸出字符串,顯示多個值的時候可以用逗號隔開。只支持基本類型,print不僅可以打印字符串值,而且可以打印函數的返回值。
6、問題:請問get和post方法有什么區別?
回答:我們再網頁上填寫的表單信息都可以通過這兩個方法將數據傳遞到服務器上,當我們使用get方法是,所有的信息都會出現在url地址中,并且使用get方法最多只能傳遞1024個字符,所以如果在傳輸量小或者安全性不那么重要的情況下可以使用get方法。說到post方法,最多可以傳輸2mb字節的數據,而且可以根據需要調節。
PHP面試題匯編
PHP面試題匯編(一)
填空題
1.在PHP中,當前腳本的名稱(不包括路徑和查詢字符串)記錄在預定義變量____中;而鏈接到當前頁面的URL記錄在預定義變量____中。
2.執行程序段將輸出____。
3.在HTTP 1.0中,狀態碼 401 的含義是____;如果返回“找不到文件”的提示,則可用 header 函數,其語句為____。
4.數組函數 arsort 的作用是____;語句 error_reporting(2047)的作用是____。
5.PEAR中的數據庫連接字符串格式是____。
6.寫出一個正則表達式,過慮網頁上的所有JS/VBS腳本(即把scrīpt標記及其內容都去掉):____。
7.以Apache模塊的方式安裝PHP,在文件http.conf中首先要用語句____動態裝載PHP模塊,然后再用語句____使得Apache把所有擴展名為php的文件都作為PHP腳本處理。
8.語句 include 和 require 都能把另外一個文件包含到當前文件中,它們的區別是____;為了避免多次包含同一文件,可以用語句____來代替它們。
9.類的屬性可以序列化后保存到 session 中,從而以后可以恢復整個類,這要用到的函數是____。
10.一個函數的參數不能是對變量的引用,除非在php.ini中把____設為on.