php面試題集-簡答題

簡答題


PHP的意思
答:PHP是一個基於服務端來創建動態網站的腳本語言,您可以用PHP和HTML生成網站主頁

請簡單闡述您最得意的開發之作.
暫無答案

對於大流量的網站, 您採用什麼樣的方法來解決訪問量問題?
答:確認服務器硬件是否足夠支持當前的流量,數據庫讀寫分離,優化數據表,
程序功能規則,禁止外部的盜鏈,控制大文件的下載,使用不同主機分流主要流量

echo,print(),print_r()的區別
echo和print都可以做輸出,不同的是,echo不是函數,沒有返回值,
而print是一個函數有返回值,所以相對而言如果只是輸出 echo 會更快,而print_r通常用於打印變量的相關信息,通常在調試中使用。
print是打印字符串
print_r則是打印複合類型 如數組、對象。

能夠使HTML和PHP分離開使用的模板
Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

如何實現PHP、JSP交互?
SOAP,XML_RPC,Socket function,CURL都可以實現這些

使用哪些工具進行版本控制?
SVN(TortoiseSVN)、cvs、vss
CVS和SVN,SVN號稱下一代CVS,功能強大,不過CVS是老牌,市佔率很高.
我一直用SVN,題目是問用什麼工具,呃,這個可能需要這麼回答:CVS Server on Apache作服務端,
WinCVS作客戶端;Subversion on Apache/DAV 做服務端,TortoiseSVN做客戶端,或者Subclipse做客戶端

請寫出數據類型(int char varchar datetime text)的意思; 請問varchar和char有什麼區別(2分)
答:int是數字類型,char固定長度字符串,varchar實際長度字符串,datetime日期時間型,text文本字符串。
char的場地固定爲創建表設置的長度,varchar爲可變長度的字符。

請說明php中傳值與傳引用的區別。什麼時候傳值什麼時候傳引用?(2分)
答:按值傳遞:函數範圍內對值的任何改變在函數外部都會被忽略
按引用傳遞:函數範圍內對值的任何改變在函數外部也能反映出這些修改
優缺點:按值傳遞時,php必須複製值。特別是對於大型的字符串和對象來說,這將會是一個代價很大的操作。
按引用傳遞則不需要複製值,對於性能提高很有好處。

優化MYSQL數據庫的方法
1、選取最適用的字段屬性,儘可能減少定義字段長度,儘量把字段設置not null。例如性別,最好設置爲ENUM
2、使用連接(join)來代替子查詢
3、使用聯合(union)來代替手動創建臨時表
4、事務處理
5、鎖定表,優化事務處理
6、使用外鍵,優化鎖定表
7、建立索引
8、優化查詢語句

apache+mysql+php實現最大負載的方法
問的太籠統。主要是配置文件的優化了,另外用linux跑要比用windows跑效果好一點。
條件允許的話,將mysql和apache分離開不用同一臺機器跑也好一點。生成靜態html頁面。

實現中文字串截取無亂碼的方法。
http://blog.csdn.net/zyb_icanplay7/article/details/8493048

include、require、include_once、require_once的區別.
include() 、require()語句包含並運行指定文件。這兩結構在包含文件上完全一樣,唯一的區別是對於錯誤的處理。
require()語句在遇到包含文件不存在,或是出錯的時候,就停止即行,並報錯。include()則繼續即行。
include_once()和require_once()一樣,應該用於在腳本執行期間同一個文件有可能被包含超過一次的情況下,
想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。這就是include_once()和require_once()與include() 和require()的主要區別。

HEREDOC介紹
heredoc 是可以讓我們在php代碼內實現一大段的html代碼,並且可以在其中,使用php變量。
1.以<<<End開始標記開始,以End結束標記結束,結束標記必須頂頭寫,不能有縮進和空格,且在結束標記末尾要有分號。
開始標記和開始標記相同,比如常用大寫的EOT、EOD、EOF來表示,但是不只限於那幾個,只要保證開始標記和結束標記不在正文中出現即可。
2.位於開始標記和結束標記之間的變量可以被正常解析,但是函數則不可以。
        
寫出一些php魔幻方法;
__construct 初始化 構造函數
__destruct 卸載 析構函數
__autoload 自動加載函數
__call   調用不存在的類的函數的時候得處理方法,__call 失敗,就調用父類方法,依此類推
__get   獲取屬性值
__set()   設置屬性值
__isset() 測定變量是否設定用的函數,傳入一個變量作爲參數,如果傳入的變量存在則傳回true,否則傳回false
__unset() 刪除指定的變量且傳回true,參數爲要刪除的變量。
__clone();   克隆對象
__toString(); 進行對象的類型轉換
__sleep();    
__wakeup();
當一個對象被串行化,PHP會調用__sleep方法(如果存在的話). 在反串行化一個對象後,PHP 會調用__wakeup方法. 
這兩個方法都不接受參數. __sleep方法必須返回一個數組,包含需要串行化的屬性.

HTTP協議中幾個狀態碼的含義:503 500 401 200 301 302……
1**:請求收到,繼續處理
2**:操作成功收到,分析、接受
3**:完成此請求必須進一步處理
4**:請求包含一個錯誤語法或不能完成
5**:服務器執行一個完全有效請求失敗

500——服務器產生內部錯誤
501——服務器不支持請求的函數
502——服務器暫時不可用,有時是爲了防止發生系統過載
503——服務器過載或暫停維修

400——錯誤請求,如語法錯誤
401——請求授權失敗
403——請求不允許

200——交易成功
201——提示知道新文件的URL
202——接受和處理、但處理未完成
203——返回信息不確定或不完整
204——請求收到,但返回信息爲空
205——服務器完成了請求,用戶代理必須復位當前已經瀏覽過的文件
206——服務器已經完成了部分用戶的GET請求

300——請求的資源可在多處得到
301——刪除請求數據
302——在其他地址發現了請求數據

向php傳入參數的兩種方法。
1.傳值方式:
將實參的值複製到對應的形參中,在函數內部的操作針對形參進行,操作的結果不會影響到實參,即函數返回後,實參的值不會改變。
2.傳址方式:
實參的內存地址傳遞到形參中,在函數內部的所有操作都會影響到實參的值,即返回後,實參的值會相應發生變化。傳址時只需要在形參前加&號即可。

用php寫出顯示客戶端ip與服務器ip的代碼
打印客戶端ip:echo $_SERVER['REMOTE_ADDR'];或者:getenv('REMOTE_ADDR');
打印服務器ip:echo gethostbyname('www.baidu.com');

在PHP中error_reporting這個函數有什麼作用?
暫無答案

如何修改SESSION的生存時間.
答:
方法1:
將php.ini中的session.gc_maxlifetime設置爲9999重啓apache
方法2:
$savePath = "./session_save_dir/";
$lifeTime = 小時 * 秒;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
方法3:
setcookie() and session_set_cookie_params($lifeTime);

有一個一維數組,裏面存儲整形數據,請寫一個函數,將他們按從大到小的順序排列。要求執行效率高。並說明如何改善執行效率。(該函數必須自己實現,不能使用php函數)
暫無答案

請舉例說明在你的開發過程中用什麼方法來加快頁面的加載速度。
暫無答案

談談asp,php,jsp的優缺點(1分)
答: ASP全名Active Server Pages,是一個WEB服務器端的開發環境, 利用它可以產生和運
行動態的、交互的、高性能的WEB服務應用程序。ASP採用腳本語言VB Script(Java script
)作爲自己的開發語言。 
PHP是一種跨平臺的服務器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法
, 並耦合PHP自己的特性,使WEB開發者能夠快速地寫出動態生成頁面.它支持目前絕大多數數
據庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(http://www.php.ne
t)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。 
JSP 是Sun公司推出的新一代站點開發語言,他完全解決了目前ASP,PHP的一個通病--
腳本級執行(據說PHP4 也已經在Zend 的支持下,實現編譯運行).Sun 公司藉助自己在Jav
a 上的不凡造詣,將Java 從Java 應用程序 和 Java Applet 之外,又有新的碩果,就是Js
p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強大的站點
程序。 
三者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。
但JSP代碼被編譯成 Servlet 並由 Java 虛擬機解釋執行,這種編譯操作僅在對 JSP 頁面的
第一次請求時發生。在 ASP 、PHP、JSP 環境下, HTML 代碼主要負責描述信息的顯示樣式
,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴於 Web 服務器,而 ASP 、PH
P、JSP 頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到 
HTML 代碼中,然後一起發送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務器的技術
,客戶端瀏覽器不需要任何附加的軟件支持。

談談對mvc的認識(1分)
答:由模型(model),視圖(view),控制器(controller)完成的應用程序
由模型發出要實現的功能到控制器,控制器接收組織功能傳遞給視圖;

GD庫是做什麼用的?
gd庫提供一系列用來處理圖片的api,使用gd庫可以處理圖片,或者生成圖片。
在網站上gd庫通常用來生成縮略圖或者用來對圖片加水印或者對網站數據生成報表。

表單中get與post提交方法的區別?
答:get是發送請求HTTP協議通過url參數傳遞進行接收,而post是實體數據,可以通過表單提交大量信息.

error_reporting 等調試函數使用。
error_reporting()函數是用來重新定義頁面顯示錯誤等級的函數,這個函數可以覆蓋掉PHP.ini針對程序運行時錯誤報告等級的配置。
error_reporting()函數能夠使用的參數列表和這些參數的數字值:
值    常量
1     E_ERROR
2     E_WARNING
4     E_PARSE
8     E_NOTICE
16    E_CORE_ERROR
32    E_CORE_WARNING
64    E_COMPILE_ERROR
128   E_COMPILE_WARNING
256   E_USER_ERROR
512   E_USER_WARNING
1024  E_USER_NOTICE
2047  E_ALL
2048  E_STRICT

posix和perl標準的正則表達式區別;
PHP同時使用兩套正則表達式規則,
一套是由電氣和電子工程師協會(IEEE)制定的POSIX Extended 1003.2兼容正則(事實上PHP對此標準的支持並不完善),
另一套來自PCRE(Perl Compatible Regular Expression)庫提供PERL兼容正則,這是個開放源代碼的軟件,作者爲 Philip Hazel。
詳情:http://purpen.iteye.com/blog/770751
            
safe_mode 打開後哪些地方受限.
啓動safe_mode,會對許多PHP函數進行限制,特別是和系統相關的文件打開、命令執行等函數。
所有操作文件的函數將只能操作與腳本UID相同的文件
雖然safe_mode不是萬能的(低版本的PHP可以繞過),但還是強烈建議打開安全模式,在一定程度上能夠避免一些未知的攻擊。
不過啓用 safe_mode會有很多限制,可能對應用帶來影響,所以還需要調整代碼和配置才能和諧。被安全模式限制或屏蔽的函數可以參考PHP手冊。
詳情:http://bbs.csdn.net/topics/390019464
            
寫代碼來解決多進程/線程同時讀寫一個文件的問題
暫無答案

寫一段上傳文件的代碼。
暫無答案

寫出session的運行機制
暫無答案

打印出字符串$a = 'abcdef'的第二個字母
echo $a{1};

在PHP中error_reporting這個函數有什麼作用? (1分)
答:設置錯誤級別與錯誤信息回報

瞭解MVC模式嗎?請寫出三種以上目前php流行MVC框架名稱。
FleatPHP、ZF、CakePHP、Symfony、Yii、TP等

寫出五種以上你使用過的php的擴展的名稱(提示:常用的php擴展)
MB_String、Iconv、Curl、GD、SHM、Libxml、Socket、MySQL、PDO等

foo()和@foo()之間有什麼區別?(1分)
答:@foo()控制錯誤輸出

在命令行下運行php方式
暫無答案

接口的作用,抽象類的作用,接口和抽象類的區別
暫無答案

$a = 'abcdef'; 請取出$a的值並打印出第一個字母(1分)
答:echo $a{0} 或 echo substr($a,0,1)

session與cookie的區別?
session儲存用戶訪問的全局唯一變量,存儲在服務器上的php指定的目錄中的(session_dir)的位置進行的存放;
cookie用來存儲連續訪問一個頁面時所使用,是存儲在客戶端,對於cookie來說是存儲在用戶win的temp目錄中的。
兩者都可通過時間來設置時間長短。
發佈了168 篇原創文章 · 獲贊 55 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章