汗~~做了一下網絡上的php題目,不知不覺做到現在.....把答案貼出來
如果有問題請歡迎補充和指正
1、用PHP打印出前一天的時間格式是2006-5-10 22:21:21(2分) $a = date("Y-m-d H:i:s", strtotime("-1 day")); print_r($a);
2、echo(),print(),print_r()的區別(3分) echo 和print不是一個函數,是一個語言結構 int print(string $arg), 只有一個參數 echo arg1,arg2; 可以輸出多個參數,返回void echo和print只能打印出string,不能打印出結構 print_r能打印出結構 比如 $arr = array("key"=>"value"); print_r($arr);
3、能夠使HTML和PHP分離開使用的模板(1分) smarty,phplib
4、使用哪些工具進行版本控制?(1分) svn,git,cvs
5、如何實現字符串翻轉?(3分) 英文: strrev($a) 中文或其他文字: 中文:GB2312, 代碼是使用GB2312編碼 <?php function reverse($str) { $ret = ""; len=mbstrwidth(str,"GB2312"); for(i=0;i< len;i++) { arr[]=mbsubstr(str, $i, 1, "GB2312"); } return implode("", array_reverse($arr)); } print_r(reverse("你好"));
--------------------------------------------------------------- 6、優化MYSQL數據庫的方法。(4分,多寫多得) 語句方面: 1 使用索引,增加查詢效率 2 優化查詢語句,提高索引命中率 數據庫涉及方面: 1 構造分庫分表,提高數據庫的存儲和擴展能力 2 根據需要使用不同的存儲引擎
7、PHP的意思(送1分) 超級文本預處理語言 Hypertext PreProcessor
8、MYSQL取得當前時間的函數是?,格式化日期的函數是(2分) CURRENT_TIMESTAMP() DATE_FORMAT() select DATE_FORMAT("2011-11-21 10:10:10", "%Y-%m-%d");
9、實現中文字串截取無亂碼的方法。(3分) mb_substr($str, 1, 1, "GB2312");
--------------------------------------------------------------- 10、您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?(1分) svn git
11、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分) smarty
12、請簡單闡述您最得意的開發之作(4分) XXX
13、對於大流量的網站,您采用什麼樣的方法來解決訪問量問題?(4分) 1 有效使用緩存,增加緩存命中率 2 使用負載均衡 3 對靜態文件使用CDN進行存儲和加速 4 想法減少數據庫的使用 5 查看出現統計的瓶頸在哪裡
----------------------------------------------------------------- 14、用PHP寫出顯示客戶端IP與服務器IP的代碼1分) $_SERVER["REMOTE_ADDR"] $_SERVER["SERVER_ADDR"]
15、語句include和require的區別是什麼?為避免多次包含同一文件,可用(?)語句代替它們? (2分) 在失敗的時候: include產生一個warning,而require產生直接產生錯誤中斷 require在運行前載入 include在運行時載入 require_once include_once
16、如何修改SESSION的生存時間(1分). session_set_cookie_params
17、有一個網頁地址, 比如PHP研究室主頁: http://www.phpv.net/index.html,如何得到它的內容?($1分) file_get_contents curl
18、在HTTP 1.0中,狀態碼401的含義是(?);如果返回“找不到文件”的提示,則可用 header 函數,其語句為(?);(2分) 未授權 header("HTTP/1.0 404 Not Found"); fast CGI中: header("Status: 404 Not Found");
19、在PHP中,heredoc是一種特殊的字符串,它的結束標志必須?(1分) 成對出現 $a = <<EOD good test EOD;
20、談談asp,php,jsp的優缺點(1分) asp是需要依賴IIS,是微軟開發的語言 php和jsp可以依賴apache或者 nginx等其他服務器
21、談談對mvc的認識(1分) model : 數據結構層 view :展現 control : 接收和判斷處理輸入
------------------------------------------------------------------- 22、寫出發貼數最多的十個人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分) select top 10 id,username from members order by posts desc
23. 請說明php中傳值與傳引用的區別。什麼時候傳值什麼時候傳引用?(2分) &表示傳引用 函數中參數傳引用會將參數進行改變 一般在輸出參數有多個的時候可以考慮使用引用
24. 在PHP中error_reporting這個函數有什麼作用? (1分) 設定error的展示級別
25. 請寫一個函數驗證電子郵件的格式是否正確 (2分) $str = "[email protected]"; regex="([a−z0−9\.−]+)@([\da−z\.−]+)\.([a−z\.]2,6)" ; //正則 return preg_match(regex,str)
26. 簡述如何得到當前執行腳本路徑,包括所得到參數。(2分) $argc --獲取參數數量 $argv --獲取參數列表
27.如何修改SESSION的生存時間. (1分) session_set_cookie_params
-------------------------------------------------------------------- 28、JS表單彈出對話框函數是?獲得輸入焦點函數是? (2分) alert() confirm() promopt() focus()
29、JS的轉向函數是?怎麼引入一個外部JS文件?(2分) window.location.href="#" <script src="#"> </script>
30、foo()和@foo()之間有什麼區別?(1分) @代表所有warning忽略
31、如何聲明一個名為”myclass”的沒有方法和屬性的類? (1分) class myclass { }
32、如何實例化一個名為”myclass”的對象?(1分) $myclass = new myclass();
33、你如何訪問和設置一個類的屬性? (2分) <?php class A { public $name = "A"; } $a = new A(); n=a->name; print_r($n);
34、mysql_fetch_row() 和mysql_fetch_array之間有什麼區別? (1分) mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用字段名作為鍵名。 <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while (row=mysqlfetcharray(result, MYSQL_ASSOC)) { printf ("ID: %s Name: %s", row["id"],row["name"]); } mysql_free_result($result);
-------------------------------------------------------------------- 35、GD庫是做什麼用的? (1分) 動態的開放的圖片處理庫
36、指出一些在PHP輸入一段HTML代碼的辦法。(1分) echo "{html}" echo <<EOD {html} EOD;
37、下面哪個函數可以打開一個文件,以對文件進行讀和寫操作?(1分) c (a) fget() (b) file_open() (c) fopen() (d) open_file()
38、下面哪個選項沒有將 john 添加到users 數組中? (1分) b (a) $users[] = ‘john’; (b) array_add($users,’john’); (c) array_push($users,‘john’); (d) $users ||= ‘john’;
39、下面的程序會輸入是否?(1分) 10 $num = 10; function multiply(){ num=num * 10; } multiply(); echo $num; ?>
40、使用php寫一段簡單查詢,查出所有姓名為“張三”的內容並打印出來 (2分) 表名 UserName Tel Content Date 張三 13333663366 大專畢業 2006-10-11 張三 13612312331 本科畢業 2006-10-15 張四 021-55665566 中專畢業 2006-10-15 請根據上面的題目完成代碼: $mysql_db=mysql_connect("local","root","pass"); @mysql_select_db("DB",$mysql_db); $sql = sprintf("select * from %s where UserName = '%s'", "表名", "張三"); values=mysqlquery(sql); while(item=mysqlfetchqueryarray(values)) { echo sprintf("用戶名:%s, 電話 %s, 學歷: %s, 畢業日期: %s", item[′UserName′],item['Tel'], item[′Content′],item['Date'] ); }
41、如何使用下面的類,並解釋下面什麼意思?(3) class test{ function Get_test($num){ num=md5(md5(num)."En"); return $num; } } $test = new test(); ret=test->Get_test(11); print_r($ret);exit; 將num進行MD5編碼之後生成的32位字符串a1和"En"聯系起來之後再進行一次MD5編碼
---------------------------------------------------------------------------- 42、寫出 SQL語句的格式 : 插入 ,更新 ,刪除 (4分) 表名 UserName Tel Content Date 張三 13333663366 大專畢業 2006-10-11 張三 13612312331 本科畢業 2006-10-15 張四 021-55665566 中專畢業 2006-10-15 (a) 有一新記錄(小王 13254748547 高中畢業 2007-05-06)請用SQL語句新增至表中 insert into 表名 values('小王', '13254748547', '高中畢業', '2007-05-06') (b) 請用sql語句把張三的時間更新成為當前系統時間 update 表名 set Date = GETDATE() where UserName = "張三" (c) 請寫出刪除名為張四的全部記錄 delete from 表明 where UserName = "張四"
43、請寫出數據類型(int char varchar datetime text)的意思; 請問varchar和char有什麼區別(2分) int 整型 char 存儲定長 varchar 存儲變長 datetime 時間 text 存儲變長的 varchar是變長 char(20) 定長
44、MySQ自增類型(通常為表ID字段)必需將其設為(?)字段(1分) auto_increment 45、寫出以下程序的輸出結果 (1分) $b=201; $c=40; a=b>$c?4:5; echo $a; ?> 4
46、檢測一個變量是否有設置的函數是否?是否為空的函數是?(2分) isset() empty()
----------------------------------------------------------------------------- 47、取得查詢結果集總數的函數是?(1分) mysql_num_rows()
48、$arr = array('james', 'tom', 'symfony'); 請打印出第一個元素的值 (1分) print_r($arr[0]); reset($arr); print_r(current($arr)); print_r(array_shift($arr));
49、請將41題的數組的值用','號分隔並合並成字串輸出(1分) implode
50、a=′abcdef′;請取出a的值並打印出第一個字母(1分) $a[0]; substr($a, 0, 1);
51、PHP可以和sql server/oracle等數據庫連接嗎?(1分) 可以 有現成的庫
52、請寫出PHP5權限控制修飾符(3分) public private protected
53、請寫出php5的構造函數和析構函數(2分) public function __construct() { } public function __destruct() { }
編程題 1. 寫一個函數,盡可能高效的,從一個標准 url 裡取出文件的擴展名 例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php <?php $url = "http://www.sina.com.cn/abc/de/fg.php?id=1"; arr=parseurl(url); pathArr=pathinfo(arr['path']); print_r($pathArr['extension']);
3. 寫一個函數,算出兩個文件的相對路徑 如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 計算出 b相對於a 的相對路徑應該是 http://www.cnblogs.com/12/34/c.php將添上
<?php $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; //獲取path相對於conpath的相對路徑 function sGetRelativePath(path,conpath) { pathArr=explode("/",path); conpathArr=explode("/",conpath); $dismatchlen = 0; for(i=0;i < count(pathArr);i++) { if(conpathArr[i] != pathArr[i]) { dismatchlen=count(pathArr) - $i; arrLeft=arrayslice(pathArr, $i); break; } } ret=strrepeat("../",dismatchlen).implode("/", $arrLeft); return $ret; } print_r(sGetRelativePath(b,a));
3.寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。
<?php function aGetAllFile($folder) { $aFileArr = array(); if(is_dir($folder)) { handle=opendir(folder); while((file=readdir(handle)) !== false) { //如果是.或者..則跳過 if(file=="."||file == "..") { continue; } if(is_file(folder."/".file)) { aFileArr[]=file; } else if(is_dir(folder."/".file)) { aFileArr[file] = aGetAllFile(folder."/".file); } } closedir($handle); } return $aFileArr; } $path = "/home/test/sql"; print_r(aGetAllFile($path));
某大公司的PHP面試題
管理提醒: 本帖被 haowubai 執行取消置頂操作(2009-07-30)
1. 如何用php的環境變量得到一個網頁地址的內容?ip地址又要怎樣得到?
[php]
echo $_SERVER ['PHP_SELF'];
echo $_SERVER ['SERVER_ADDR'];
[/php]
2. 求兩個日期的差數,例如2007-2-5 ~ 2007-3-6 的日期差數
[php]
$begin=strtotime('2007-2-5');
$end=strtotime('2007-3-6');
echo ($end-$begin)/(24*3600);
[/php]
3. 請寫一個函數,實現以下功能:
字符串“open_door” 轉換成 “OpenDoor”、”make_by_id” 轉換成 ”MakeById”。
[php]
function changeStyle(& $str) {
/*$str = str_replace ( "_", " ", $str );
$str = ucwords ( $str );
$str = str_replace ( " ", "", $str );
return $str;*/
$arrStr=explode('_',$str);
foreach($arrStr as $key=>$value){
$arrStr[$key]=strtoupper(substr($value,0,1)).substr($value,1);
}
return implode('',$arrStr);
}
$s = "open_door";
echo changeStyle ( $s );
[/php]
4. 要求寫一段程序,實現以下數組$arr1轉換成數組$arr2:
[php]$arr1 = array (
'0' => array ('fid' => 1, 'tid' => 1, 'name' =>'Name1' ),
'1' => array ('fid' => 1, 'tid' => 2 , 'name' =>'Name2' ),
'2' => array ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),
'3' => array ('fid' => 1, 'tid' => 7 , 'name' =>'Name4' ),
'4' => array ('fid' => 3, 'tid' => 9, 'name' =>'Name5' )
);
$arr2 = array......余下全文>>
求職的朋友可以看看,不過也不要想著這些就一定有用,有時候工作中的經驗也是非常重要的。不過,基本知識點還是非常重要的。至於高階中的算法問題,如果你不是做特別重要的任務,這些算法你是碰不到的(做網游的除外);高階中的像冊處理,如果你真能處理好了,你單獨做一個產品出售也不成問題啊。
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.
MySQL數據庫作發布系統的存儲,一天五萬條以上的增量,預計運維三年,怎麼優化?
寫出一種排序算法(原理),並說出優化它的方法。
請簡單闡述您最得意的開發之作
對於大流量的網站,您采用什麼樣的方法來解決各頁面訪問量統計問題
您是否用過模板引擎? 如果有您用的模板引擎的名字是?
請介紹Session的原理,大型網站中Session方面應注意什麼?
測試php性能和mysql數據庫性能的工具,和找出瓶頸的方法。
正則提出一個網頁中的所有鏈接.
介紹一下常見的SSO(單點登陸)方案(比如dedecms整合discuz的passport)的原理。
您寫過的PHP框架的特點,主要解決什麼問題,與其他框架的不同點。
大型的論壇/新聞文章系統/SNS網站在性能優化上有什麼區別?
相冊類應用:要求在浏覽器中能同時選中並上傳多個文件,圖片要求能剪裁,壓縮包在服務器端解壓。能上傳單個達50M的文件。上傳過程中有進度條顯示。每個圖片能生成四種大小縮略圖,視頻文件要轉成flv供flash播放。敘述要涉及的各類開源軟件和簡單用途。
一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…, 如此不停的進行下去,直到最後只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最後那個大王的編號。用程序模擬該過程。
3. unix/linux 基本使用
linux下查看當前系統負載信息的一些方法。
vim的基本快捷鍵。
ssh 安全增強方法;密碼方式和rsa key 方式的配置。
rpm/apt&......余下全文>>