㈠ php程序設計試卷
1、"php"
2、?>和<?php ; <?php和?>
3、賦值 ; 判斷
4、5
5、這個題太無聊 是在考轉義
6、你簡直太棒了!
7、資料庫地址 ; 資料庫用戶名
㈡ PHP基礎面試題 – 第三天
1、 下面語句執行的結果是:
A:1 2 3 4
B:1 1 3 4
C:1 2 3 3
D:1 2 3 5
E:以上都不是
答案:B
2、下面那些說法是錯誤的:
答案:A
3、array_shift()函數的作用是?
A 在數組中新增一個元素
B 移除數組中的一個元素
C 交換一個數組的key和value
D 清除一個數組
答案:B
4、你將使用下面哪個函數來刪除一個文件?
A unlink()
B delete()
C fdelete()
D: file_delete()
答案:A
5、請看代碼,資料庫關閉指令將關閉哪個鏈接標識?
A.$link1
B $link2
C 全部關閉
D 報錯
答案:B
//mysql_close() 關閉指定的連接標識所關聯的到 MySQL 伺服器的連接。如果沒有指定 link_identifier,則關閉上一個打開的連接。
㈢ php面試題
以下哪一句不會把 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。
4. reference 跟一個正規的變數有什麼分別?如何 pass by reference?在什麼情況下我們需要這樣做?
Reference 傳送的是變數的地址而非它的值,所以在函式中改變一個變數的值時,整個應用都見到這個變數的新值。
一個正規變數傳送給函式的是它的值,當函式改變這個變數的值時,只有這個函式才見到新值,應用的其他部分仍然見到舊值。
$myVariable = "its' value";
Myfunction(&$myVariable); // 以 reference 傳送參數以 reference 傳送參數給函式,可以使函式改變了的變數,即使在函式結束後仍然保留新值。
5.些函式可以用來在現正執行的腳本中插入函式庫?
對這道題目不同的理解會有不同的答案,我的第一個想法是插入 PHP 函式庫不外乎 include()、include_once()、require()、require_once(),但細心再想,「函式庫」也應該包括 com 物件和 .net 函式庫,所以我們的答案也要分別包括 com_load 和 dotnet_load,下次有人提起「函式庫」的時候,別忘記這兩個函式。
6.foo() 與 @foo() 有什麼分別?
foo() 會執行這個函式,任何解譯錯誤、語法錯誤、執行錯誤都會在頁面上顯示出來。
@foo() 在執行這個函式時,會隱藏所有上述的錯誤訊息。
很多應用程式都使用 @mysql_connect() 和 @mysql_query 來隱藏 mysql 的錯誤訊息,我認為這是很嚴重的失誤,因為錯誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。
7.你如何替 PHP 的應用程式偵錯?
我並不常這樣做,我曾經試過很多不同的偵錯工具,在 linux 系統中設定這些工具一點也不容易。不過以下我會介紹一個近來頗受注目的偵錯工具。
PHP - Advanced PHP Debugger 或稱 PHP - APD,第一步是執行以下的指令......一年四季春常在 萬紫千紅永開花 喜迎新春
㈣ PHP程序員上機面試題(並附答案,回答好的加分)
題集網上有一套php的面試題:http://www.tijee.com/tags/46-php-face-questions/posts
㈤ 程序員面試必備PHP基礎面試題 – 第十三天
一、在HTTP1.0中,狀態嗎500的含義的是什麼?如果返回「找不到文件」的提示,則可用header(函數),其語句為?
500 Internal Server Error 伺服器遇到了意料不到的情況,不能完成客戶的請求
Header(「 HTTP/1.0 404 NOT FOUND」);
二、數組函數arsort()的作用是什麼?語句err_reporting(2047)的作用是什麼?
arsort:對數組進行逆向排序並保持索引關系;
error_reporting(2047)的作用是:report All errors and warnings
三、語句include和require都能把另外一個文件包含到當前文件中,它們的區別是___;為避免多此包含同一個文件,可以用語句_____來代替它們。
在如何處理失敗時,include() 產生一個警告而 require() 則導致一個致命錯誤; require_once()/include_once()
四、get_magic_quotes_gpc的作用是_______
本函數取得 PHP 環境配置的變數 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示關閉本功能;返回 1 表示本功能打開。當 magic_quotes_gpc 打開時,所有的 『 (單引號), 」 (雙引號), (反斜線) and 空字元會自動轉為含有反斜線的溢出字元。
五、在php中, heredoc是一種特殊的字元串, 他的結束標志必須是_____
結束標識符所在的行不能包含任何其它字元除」;」
六、寫出一個正則表達式, 把$string中的所有數字全部刪除
preg_replace(『/d/U』,』』,$string);
七、找出/data1/source 目錄中大於100k 的文件, 並復制到 ~/tmp/35/下
find /data1/source +size >100k | cp ~/temp/35/
八、perl –pi –e 『s|ABCD|Linux|g』 `find ./ -type f`的含義是
find ./-type f:找尋當前目錄下的類型為f的文件
九、10 2 * * * /data0/apache/schele/ussd/topnews/import_data.pl > /dev/null 的含義:_______將import_data.pl清空或刪除
十、rsync -avu 105903.zip 218.206.86.68::mmsres/resource/291/205的含義:_________備份數據用
-a 歸檔模式,遞歸傳輸文件;
-v 詳細模式輸出;
-u, –update 僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件。(不覆蓋更新的文件)
十一、寫出x,y的值
十二、使用純CSS實現未知寸的圖片(但高度都小於200px) 在200px的正方形容器中水平和垂直居中,HTML代碼如下
㈥ php面試題解答
1,
var x=document.getElementById("img1");
var title=document.getElementById("img1").title;
var sina_title=document.getElementById("img1").sina_title;
2,serialize(),unserialize();
3,編碼方式不同,urlencode()將字串以URL編碼。例如空格就會變成加號。
rawurlencode()將url編碼成url的字元串專用格式,特殊字元回轉換成百分號後面加兩個十六子介數字的格式。
4,strip_tags(),html_entity_decode();
5,$str=preg_replace("/\<script.*\>.*\<\/script\>/i","",$str);
6,左連接,左連接的表如果沒有匹配的數據不影響結果。
7
SELECT name,score FROM tl_user LEFT JOIN tl_score ON tl_user.ID=tl_score.ID
7 system(),exec(),passthru()
8,json_decode ,json_encode
9 isset() empty()
10 後者的許可權大於前者,後者是OFF的話,前者就算是E-ALL也沒用。
11,$_SERVER['REMOTE_ADDR'];
12,incov()
echo iconv("gbk",""UTF-8,"我們");
mb_convert_encoding($str, "GBK", "UTF-8")
13 explode() split() ;implode() join()
14 注意事項挺多的,懶得寫。
二
1,超時,伺服器已經關閉連接
2 靜態表欄位長度固定,自動填充,讀寫速度很快,便於緩存和修復,但比較占硬碟,動態表是欄位長度不固定,節省硬碟,但更復雜,容易產生碎片,速度慢,出問題後不容易重建。
3InnoDB和MyISAM是在使用MySQL最常用的兩個表類型,各有優缺點,視具體應用而定。基本的差別為:MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持。MyISAM類型的表強調的是性能,其執行數度比InnoDB類型更快,但是不提供事務支持,而InnoDB提供事務支持已經外部鍵等高級資料庫功能。
MyIASM是IASM表的新版本,有如下擴展:
二進制層次的可移植性。
NULL列索引。
對變長行比ISAM表有更少的碎片。
支持大文件。
更好的索引壓縮。
更好的鍵嗎統計分布。
更好和更快的auto_increment處理。
1.MySQL最大的優勢在於MyISAM引擎下的簡單SELECT,INSERT和UPDATE快速操作
2.MyISAM類型的數據文件可以在不同操作系統中COPY,這點很重要,布署的時候方便點。
以下是一些細節和具體實現的差別:
1.InnoDB不支持FULLTEXT類型的索引。
2.InnoDB 中不保存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count(*)語句包含 where條件時,兩種表的操作是一樣的。
3.對於AUTO_INCREMENT類型的欄位,InnoDB中必須包含只有該欄位的索引,但是在MyISAM表中,可以和其他欄位一起建立聯合索引。
4.DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的刪除。
5.LOAD TABLE FROM MASTER操作對InnoDB是不起作用的,解決方法是首先把InnoDB表改成MyISAM表,導入數據後再改成InnoDB表,但是對於使用的額外的InnoDB特性(例如外鍵)的表不適用。
另外,InnoDB表的行鎖也不是絕對的,如果在執行一個SQL語句時MySQL不能確定要掃描的范圍,InnoDB表同樣會鎖全表,例如update table set num=1 where name like 「%aaa%」
以暫對存儲引擎的認識,覺得 InnoDB 支持外鍵,在數據量可以用「龐大」來形容時,在有良好的 INDEX 的基礎上,InnoDB 的查詢速度應該比 MyISAM 要快。
在 Falcon 有穩定版本前,我想 MyISAM 是一個可用的選擇方案。
任何一種表都不是萬能的,只用恰當的針對業務類型來選擇合適的表類型,才能最大的發揮MySQL的性能優勢
3, 都是1 ^^懶得回答了,睡覺去。
㈦ 程序員面試必備PHP基礎面試題 – 第十一天
一、兩張表 city表和province表。分別為城市與省份的關系表。
表名:city
id City Provinceid
1 廣州 1
2 深圳 1
3 惠州 1
4 長沙 2
5 武漢 3
………. 廣州
表名稱:province:
id Province
1 廣東
2 湖南
3 湖北
……….
1、寫一條sql語句關系兩個表,實現:顯示城市的基本信息。顯示欄位:城市id ,城市名, 所屬省份 。
如:
Id(城市id) Cityname(城市名) Privence(所屬省份)
2、如果要統計每個省份有多少個城市,請用group by 查詢出來。顯示欄位:省份id ,省份名,包含多少個城市。
二、主鍵 和外鍵表示什麼?一般用於做什麼?
主鍵:能夠唯一表示數據表中的每個記錄的欄位或者欄位的組合就稱為主鍵。一個主鍵是唯一識別一個表的每一行記錄,但這只是其作用的一療分,主鍵的主要作用是將記錄和存放在其他表中的數據進行關聯,在這一點上,主鍵是不同表中各記錄間的簡單指針,主鍵約整就是確定表中的每一條記錄,主鍵不能是空值,唯一約束是用於指定一個或多個列的組合值具有唯一性,以防止在列中輸入重復的值,所以,主鍵的值對用戶而言是沒有什麼意義,並且和它賦予的值也沒有什麼特別聯系。
外鍵:若有兩個表A,B,C是A的主鍵,而B中也有C欄位,則C就是表B的外鍵,外鍵約束主要用來維護兩個表之間數據的一致性。A為基本表,B為信息表。
在資料庫中,常常不只是一個表,這些表之間也不是相互獨立的,不同的表之間需要建立一種關系,才能將它們的數據相互溝通,而在這個溝通過程中,就需要表中有一個欄位作為標志,不同的記錄對應的欄位取值不能相同,也不能是空白的,通過這個欄位中不同的值可以區別各條記錄,就像我們區別不同的人,每個人都有名字,但它卻不能作為主鍵,因為人名很容易出現重復,而身份證號是每個人都不同的,所以可以根據它來區別不同的人,資料庫的表中作為主鍵的段段就要像人的身份證號一樣,必須是每個記錄的值都不同,這才能根據
主鍵的值來確定不同的記錄。
關系:外鍵一定是另外某個表的主鍵。
三、select now(),Date_ADD(now(),INTERVAL 14 day),Date_SUB(now(),INTERVAL 3 Day) from table; 會獲得什麼內容,請寫出來。
會獲得三條數據:
第一條:當前時間;
第二條:當前時間加上14天;
第三條:當前時間減去3天。
四、您所知道的MYSQL 資料庫備份,還原方式有哪幾種?
備份:
一,搭建主從架構,master-slave,通過binlog文件同步復制主庫的數據,也可以直接通過binlog文件恢復數據。
二,通過系統計劃任務執行mysqlmp做周期性全備份。
三,物理備份,直接拷貝數據文件、參數文件、日誌文件。
還原:
一.通過mysql操作工具,如phpmyadmin,sqlyog等導入備份過的資料庫文件。
二.將物理備份的文件拷貝到mysql的data目錄下
五、內容管理系統中,表message有如下欄位
id 文章id
title 文章標題
content 文章內容
category_id 文章分類id
hits 點擊量
創建上表,寫出MySQL語句
六、同樣上述內容管理系統:表comment記錄用戶回復內容,欄位如下
comment_id 回復id
id 文章id,關聯message表中的id
comment_content 回復內容
現通過查詢資料庫需要得到以下格式的文章標題列表,並按照回復數量排序,回復最高的排在最前面
文章id 文章標題 點擊量 回復數量
用一個SQL語句完成上述查詢,如果文章沒有回復則回復數量顯示0
七、內容管理系統,表category保存分類信息,欄位如下
category_id int(4) not null auto_increment;
category_name varchar(40) not null;
用戶輸入文章時,通過選擇下拉菜單選定文章分類
寫出如何實現這個下拉菜單
八、PHP文件操作
1、內容管理系統:用戶提交內容後,系統生成靜態HTML頁面;寫出實現的基本思路
2、簡單描述用戶修改發布內容的實現流程和基本思路
1)當用戶提交後生成一個由url地址MD5後的文件的編譯頁面,用文件處理file函數生成一個模板合成頁,判斷模板編譯頁是否有,模板頁無或者編譯頁的創建時間戳小於模板頁的修改時間都會從新生成編譯頁面,編譯後的頁面會調用對應資料庫的值顯示在頁面中,通過對內存數據的讀取釋放,顯示出我們看到的靜態數據,然後用file文件將其保存起來生成靜態的頁面
2)當用戶修改了發布內容都會修改數據相關的內容,並通過編譯頁面更新靜態數據並用文件的方式緩存起來,當用戶查看時將不做任何資料庫查找,直接調用該緩存文件即可
㈧ 誰能告訴我一些PHP開發常見的面試題呢
1、表單提交get和post有何區別?
答:get的方式是把數據在地址欄中發送,get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
2、用PHP列印出前一天的時間格式是2006-5-1022:21:21
復制代碼代碼示例:
echo date("Y-m-dH:i:s",time()-(3600*24));或echodate("Y-m-d H:i:s",strtotime("-1 day"));
3、php中include和require的區別?
這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而 require() 則導致一個致命錯誤。換句話說,如果你想在遇到丟失文件時停止處理頁面就用 require()。include() 就不是這樣,腳本會繼續運行。
4、echo(),print(),print_r()的區別
echo可以接多個參數,print只能接一個參數,它們都是PHP的語言結構,print_r是遞規列印,用來列印數組或對象
5、能夠使HTML和PHP分離開使用的模板
smarty,phplib,SmartTemplate
6、如何理解MVC模式?
首先說一下框架,框架:就是別人把一些底層,常用操作.比如數據操作(增,刪,改,查)寫好.你來直接用.其它的功能要自己來做。
MVC:設計模式,M模型,V顯示,C控制.現在許多框架都是基於MVC來做的把邏輯和顯示分開.比如你要換頁面,只需要改V裡面的東西並不需要再去變動程序!(詳細的東西可以上網上查一下)
7、如何實現PHP、JSP交互?
PHP提供了支持java的類庫文件,或者通過HTTP協議來交互數據
8、使用哪些工具進行版本控制?
VSS,CVS,SVN
http://www.jbxue.com/php/25446.html
㈨ 求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.
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/yum/ports 裝包,查詢,刪除的基本命令。
Makefile的基本格式,gcc 編譯,連接的命令,-O0 和-O3區別。
gdb,strace,valgrind的基本使用.
4. 前端,HTML,JS
css盒模型。
javascript中的prototype。
javascript中this對象的作用域。
IE和firefox事件冒泡的不同。
什麼是怪異模式,標准模式,近標准模式。
DTD的定義
IE/firefox常用hack.
firefox,IE下的前端js/css調試工具。