亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

高級php面試題及php面試題部分答案

2024-05-04 23:24:13
字體:
來源:轉載
供稿:網友
在網上看到一些高級php 的面試題目。。

閑來無事,搞了一些答案。。。可能不是很全面,留這以后備用吧。

一. 基本知識點
1.1 HTTP協議中幾個狀態碼的含義:503 500 401 403 404 200 301 302。。。
200 : 請求成功,請求的數據隨之返回。
301 : 永久性重定向。
302 : 暫時行重定向。
401 : 當前請求需要用戶驗證。
403 : 服務器拒絕執行請求,即沒有權限。
404 : 請求失敗,請求的數據在服務器上未發現。
500 : 服務器錯誤。一般服務器端程序執行錯誤。
503 : 服務器臨時維護或過載。這個狀態時臨時性的。

1.2 Include require include_once require_once 的區別.
處理失敗方式不同:
require 失敗時會產生一個致命級別錯誤,并停止程序運行。
include 失敗時只產生一個警告級別錯誤,程序繼續運行。

include_once/require_once和include/require 處理錯誤方式一樣,
唯一區別在于當所包含的文件代碼已經存在時候,不在包含。

1.3 PHP/Mysql中幾個版本的進化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改進等等。


1.4 HEREDOC介紹
一種定義字符串的方法。
結構:
<<<。在該提示符后面,要定義個標識符(單獨一行),
然后是一個新行。接下來是字符串 本身,
最后要用前面定義的標識符作為結束標志(單獨一行)
注意:
標識符的命名也要像其它標簽一樣遵守PHP的規則:
只能包含字母、數字和下劃線,并且必須以字母和下劃線作為開頭


1.5 寫出一些php魔幻(術)方法;
__construct() 實例化類時自動調用。
__destruct() 類對象使用結束時自動調用。
__set() 在給未定義的屬性賦值的時候調用。
__get() 調用未定義的屬性時候調用。
__isset() 使用isset()或empty()函數時候會調用。
__unset() 使用unset()時候會調用。
__sleep() 使用serialize序列化時候調用。
__wakeup() 使用unserialize反序列化的時候調用。
__call() 調用一個不存在的方法的時候調用。
__callStatic()調用一個不存在的靜態方法是調用。
__toString() 把對象轉換成字符串的時候會調用。比如 echo。
__invoke() 當嘗試把對象當方法調用時調用。
__set_state() 當使用var_export()函數時候調用。接受一個數組參數。
__clone() 當使用clone復制一個對象時候調用。

1.6 一些編譯php時的configure 參數
–prefix=/usr/local/php    php安裝目錄
–with-config-file-path=/usr/local/php/etc 指定php.ini位置
–with-mysql=/usr/local/mysql mysql安裝目錄,對mysql的支持
–with-mysqli=/usr/local/mysql/bin/mysql_config mysqli文件目錄,優化支持
–enable-safe-mode 打開安全模式
–enable-ftp 打開ftp的支持
–enable-zip 打開對zip的支持
–with-bz2 打開對bz2文件的支持
–with-jpeg-dir 打開對jpeg圖片的支持
–with-png-dir 打開對png圖片的支持
–with-freetype-dir 打開對freetype字體庫的支持
–without-iconv關閉iconv函數,種字符集間的轉換
–with-libxml-dir 打開libxml2庫的支持
–with-xmlrpc 打開xml-rpc的c語言
–with-zlib-dir 打開zlib庫的支持
–with-gd 打開gd庫的支持

更多可以使用 ./configure help 查看



1.7 向php傳入參數的三種方法。

/*
     * 方法一 使用$argc $argv
     *  在命令行下運行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456
     */
//    if ($argc > 1){
//        print_r($argv);
//    }


    /**
     * 運行結果
     *
     sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./getopt.php -f 123 -g 456
        Array
        (
            [0] => ./getopt.php
            [1] => -f
            [2] => 123
            [3] => -g
            [4] => 456
        )
     */










     /*
     * 方法二 使用getopt函數()
     *  在命令行下運行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456
     */


//    $options = "f:g:";
//    $opts = getopt( $options );
//    print_r($opts);


    /**
     * 運行結果
     *
     sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./getopt.php -f 123 -g 456
        Array
        (
            [f] => 123
            [g] => 456
        )
     */






    /*
     * 方法三 提示用戶輸入,然后獲取輸入的參數。有點像C語言
     *  在命令行下運行 /usr/local/php/bin/php ./getopt.php
     */
    fwrite(STDOUT, "Enter your name: ");
    $name = trim(fgets(STDIN));
    fwrite(STDOUT, "Hello, $name!");
    /**
     * 運行結果
     *
     sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./getopt.php
     Enter your name: francis
     Hello, francis!
     */




1.8 (mysql)請寫出數據類型(int char varchar datetime text)的意思; 請問varchar和char有什么區別;
int : 數值類型
char : 固定長度字符串類型
varchar : 可變長度字符串類型
datetime : 時期時間類型
text : 文本類型

varchar和char有什么區別:
a. char 長度是固定的,不管你存儲的數據是多少他都會都固定的長度。
而varchar則處可變長度但他要在總長度上加1字符,這個用來存儲位置。

b. char 固定長度,所以在處理速度上要比varchar快速很多,但是浪費存儲空間,
所以對存儲不大,但在速度上有要求的可以使用char類型,反之可以用varchar類型來實例。


1.9 error_reporting 等調試函數使用
error_reporting() 函數能夠在運行時設置php.ini中 error_reporting 指令。
所以可以再程序中隨時調節顯示的錯誤級別。
使用此函數時 display_errors必須是打開狀態。

1.10 您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?




1.11 posix和perl標準的正則表達式區別;



1.12 Safe_mode 打開后哪些地方受限.
啟動safe_mode,會對許多PHP函數進行限制,特別是和系統相關的文件打開、命令執行等函數.
所有操作文件的函數將只能操作與腳本UID相同的文件.


1.13 寫代碼來解決多進程/線程同時讀寫一個文件的問題。
PHP是不支持多線程的,可以使用php的flock加鎖函數實現。
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 進行排它型鎖定
fwrite($fp, "Write something here/n");
flock($fp, LOCK_UN); // 釋放鎖定
} else {
echo "Couldn't lock the file !";
}
fclose($fp);


1.14 寫一段上傳文件的代碼。
upload.html
<form enctype="multipart/form-data" method="POST" action="upload.php">
Send this file: <input name="name" type="file" />
<input type="submit" value="Send File" />
</form>

upload.php
$uploads_dir = '/uploads';
foreach ($_FILES["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["tmp_name"][$key];
$name = $_FILES["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}




1.15 Mysql 的存儲引擎,myisam和innodb的區別。
a. MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持.
b. MyISAM類型的表強調的是性能,其執行數度比InnoDB類型更快.
c. InnoDB不支持FULLTEXT類型的索引.
d. InnoDB 中不保存表的具體行數,也就是說,
執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行,
但是MyISAM只要簡單的讀出保存好的行數即可.
e. 對于AUTO_INCREMENT類型的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中,可以和其他字段一起建立聯合索引。
f. DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的刪除。
g. LOAD TABLE FROM MASTER操作對InnoDB是不起作用的,解決方法是首先把InnoDB表改成MyISAM表,導入數據后再改成InnoDB表,
但是對于使用的額外的InnoDB特性(例如外鍵)的表不適用.
h. MyISAM支持表鎖,InnoDB支持行鎖。



二. web 架構,安全,項目經驗
2.1 介紹xdebug,apc,eAccelerator,Xcache,Zend opt的使用經驗。


2.2 使用mod_rewrite,在服務器上沒有/archivers/567.html這個物理文件時,重定向到index.php?id=567 ,請先打開mod_rewrite.
首先,打開mod_rewrite模塊。

其次,http.conf找到以下代碼段:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
將其中的:AllowOverride None 改為 AllowOverride All ,重啟httpd服務即可。

然后,在項目根目錄下簡歷 .htaccess 文件,填寫規則。
 

2.3 MySQL數據庫作發布系統的存儲,一天五萬條以上的增量,預計運維三年,怎么優化?
a. 設計良好的數據庫結構,允許部分數據冗余,盡量避免join查詢,提高效率。
b. 選擇合適的表字段數據類型和存儲引擎,適當的添加索引。
c. mysql庫主從讀寫分離。
d. 找規律分表,減少單表中的數據量提高查詢速度。
e。添加緩存機制,比如memcached,apc等。
f. 不經常改動的頁面,生成靜態頁面。
g. 書寫高效率的SQL。比如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE.


2.4 寫出一種排序算法(原理),并說出優化它的方法。


2.5 請簡單闡述您最得意的開發之作


2.6 對于大流量的網站,您采用什么樣的方法來解決各頁面訪問量統計問題
a. 確認服務器是否能支撐當前訪問量。
b. 優化數據庫訪問。參考2.3
c. 禁止外部訪問鏈接(盜鏈), 比如圖片盜鏈。
d. 控制文件下載。
e. 使用不同主機分流。
f. 使用瀏覽統計軟件,了解訪問量,有針對性的進行優化。


2.7 您是否用過模板引擎? 如果有您用的模板引擎的名字是?
Smarty

2.8 請介紹Session的原理,大型網站中Session方面應注意什么?




2.9 測試php性能和mysql數據庫性能的工具,和找出瓶頸的方法。


2.10 正則提出一個網頁中的所有鏈接.


2.11 介紹一下常見的SSO(單點登陸)方案(比如dedecms整合discuz的passport)的原理。


2.12 您寫過的PHP框架的特點,主要解決什么問題,與其他框架的不同點。


2.13 大型的論壇/新聞文章系統/SNS網站在性能優化上有什么區別?


2.14 相冊類應用:要求在瀏覽器中能同時選中并上傳多個文件,圖片要求能剪裁,壓縮包在服務器端解壓。能上傳單個達50M的文件。上傳過程中有進度條顯示。每個圖片能生成四種大小縮略圖,視頻文件要轉成flv供flash播放。敘述要涉及的各類開源軟件和簡單用途。
一群猴子排成一圈,按1,2,…,n依次編號。然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最后那個大王的編號。用程序模擬該過程。


三. unix/linux 基本使用
3.1 linux下查看當前系統負載信息的一些方法。


3.2 vim的基本快捷鍵。


3.3 ssh 安全增強方法;密碼方式和rsa key 方式的配置。


3.4 rpm/apt/yum/ports 裝包,查詢,刪除的基本命令。


3.5 Makefile的基本格式,gcc 編譯,連接的命令,-O0 和-O3區別。


3.6 gdb,strace,valgrind的基本使用.


四. 前端,HTML,JS
css盒模型。
javascript中的prototype。
javascript中this對象的作用域。
IE和firefox事件冒泡的不同。
什么是怪異模式,標準模式,近標準模式。
DTD的定義
IE/firefox常用hack.
firefox,IE下的前端js/css調試工具。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品视频在线观看网址| 欧美插天视频在线播放| 亚洲精品福利在线观看| 欧美精品在线第一页| 久热在线中文字幕色999舞| 欧美日韩国产中文精品字幕自在自线| 亚洲第一网站男人都懂| 成人免费福利视频| 日韩视频免费大全中文字幕| 欧美国产第一页| 久久男人的天堂| 国产精品嫩草影院一区二区| 欧美日韩美女在线观看| 亚洲毛片在线观看.| 国产精品久久婷婷六月丁香| 中文字幕欧美精品在线| 国产精品久久久久久久一区探花| 欧美精品免费播放| 伊人久久大香线蕉av一区二区| 国产精品高清免费在线观看| 久久久精品2019中文字幕神马| 国产精品亚洲综合天堂夜夜| 日韩免费黄色av| 欧美激情va永久在线播放| 欧美日韩中文字幕日韩欧美| 日本一区二区三区在线播放| 亚洲国产成人精品久久| 免费成人高清视频| 国内精品久久久久久久久| 九色成人免费视频| 自拍视频国产精品| 日韩男女性生活视频| 欧美日韩福利电影| 国产精品手机播放| 黄色精品一区二区| 国产精品久久久久999| 国产精品第2页| 欧美精品日韩www.p站| 国产精品三级在线| 国产精品嫩草影院久久久| 国产高清视频一区三区| 91精品成人久久| 欧美日韩性视频在线| 欧美性猛交xxxx免费看| y97精品国产97久久久久久| 久久成人一区二区| 97碰碰碰免费色视频| 欧美午夜影院在线视频| 欧美午夜精品久久久久久浪潮| 亚洲一区二区三区乱码aⅴ| 国产在线日韩在线| 欧美精品日韩三级| 国产999在线| www.午夜精品| 中文字幕亚洲激情| 日韩精品亚洲元码| 欧美日韩高清区| 成人激情免费在线| 亚洲欧美日韩在线高清直播| 久久99青青精品免费观看| 久久精品国产一区二区三区| 丝袜亚洲另类欧美重口| 国产亚洲精品日韩| 欧美日韩免费区域视频在线观看| 欧美在线观看视频| 久久av在线看| 亚洲精品aⅴ中文字幕乱码| 欧美老女人性生活| 国产精欧美一区二区三区| 国产精品自产拍在线观看中文| 96pao国产成视频永久免费| 久久久爽爽爽美女图片| 日本三级韩国三级久久| 538国产精品一区二区免费视频| 色综合五月天导航| 亚洲成人精品久久| 国产精品久久电影观看| 亚洲娇小xxxx欧美娇小| 国产精品人人做人人爽| 日韩精品久久久久久福利| 亚洲精品美女久久久| 久久久国产91| 亚洲国产成人久久综合一区| 亚洲女人被黑人巨大进入al| 91av在线免费观看视频| 国产视频精品自拍| 亚洲男人天堂久| 国产精品一区二区三区在线播放| 国产成人精品免费久久久久| 日韩中文字幕网址| 2019日本中文字幕| 欧美激情女人20p| 日韩欧美大尺度| 97在线视频免费观看| 日韩在线观看免费高清完整版| 福利一区视频在线观看| 成人亚洲欧美一区二区三区| 91九色单男在线观看| 欧美激情va永久在线播放| 成人黄色大片在线免费观看| 97精品国产97久久久久久免费| 国产欧美精品日韩| 亚洲色图校园春色| 精品无人区乱码1区2区3区在线| 久久精品国产欧美亚洲人人爽| 欧美激情三级免费| 亚洲欧美中文另类| 91精品免费看| 91在线看www| 精品国产依人香蕉在线精品| 亚洲欧美在线一区| 26uuu另类亚洲欧美日本老年| 国产精品人人做人人爽| 欧美一级电影久久| 中日韩午夜理伦电影免费| 国产成人精品午夜| 久久九九全国免费精品观看| 日韩av一区在线| 岛国av一区二区| 久久国产一区二区三区| 亚洲一区中文字幕在线观看| 国产精品久久二区| 欧美国产日韩在线| 成人黄色av网站| 久久91亚洲精品中文字幕奶水| 欧美丰满少妇xxxxx| 久久久久久久一区二区三区| 91国语精品自产拍在线观看性色| 欧美日韩福利在线观看| 在线播放国产一区二区三区| 亚洲欧美激情另类校园| 九九热99久久久国产盗摄| 亚洲色图综合久久| 国产日韩欧美综合| 性欧美xxxx| 久久久精品网站| 高跟丝袜一区二区三区| 久久久久亚洲精品成人网小说| 97热在线精品视频在线观看| 欧美性猛交99久久久久99按摩| 欧美激情一区二区三区在线视频观看| 成人有码在线视频| 欧美人与性动交a欧美精品| 国产美女直播视频一区| 日韩人体视频一二区| 久久福利视频网| 日韩成人av网址| 日韩电影在线观看永久视频免费网站| 欧美一级电影免费在线观看| 粉嫩av一区二区三区免费野| 国产精品极品美女粉嫩高清在线| 成人性生交大片免费观看嘿嘿视频| 久久综合色影院| 国产乱肥老妇国产一区二| 91精品国产高清自在线| 视频直播国产精品| 欧美精品精品精品精品免费| 欧美精品一区二区三区国产精品| 亚洲自拍偷拍在线| 久久电影一区二区| 亚洲精品久久久久中文字幕二区| 国产精品国产三级国产专播精品人| 国产一区二区视频在线观看| 国产在线精品成人一区二区三区|