第一篇:php的一些問題
1.PHP全稱
PHP: Hypertext Preprocessor 是一種運行在服務器端的腳本語言 2.PHP作用:主要用來生成動態網頁。其它作用:1)web開發 2)腳本開發
3)軟件開發
3.MVC: 一種軟件設計模式,把軟件系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。MVC模式的目的就是實現Web系統的職能分工。Model層實現系統中的業務邏輯;View層用于與用戶的交互;
Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當的視圖以用于顯示,同時它
優點:在MVC設計模式中,模型響應用戶請求并返回響應數據,視圖負責格式化數據并把它們呈現給用戶,業務邏輯和表示層分離,同一個模型可以被不同的視圖重用,所以大大提高了代碼的可重用性;
由于MVC模式的三個模塊相互獨立,改變其中一個不會影響其他兩個,所以依據這種設計思想能構造良好的少互擾性的構件;
提高了應用程序的靈活性和可配置性。也可以解釋用戶的輸入并將它們映射為模型層可執行的操作。
4.GD庫的作用:GD庫提供了一系列用來處理圖片的功能,使用GD庫可以處理圖片,或者生成圖片。在網站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網站數據生成報表。
5.char 與varchar : char是一種固定長度的類型,varchar則是一種可變長度的類型。區別: char(M)類型的數據列里,每個值都占用M個字節,如果某個長度小于M,MySQL就會在它的右邊用空格字符補足.(在檢索操作中那些填補出來的空格字符將被去掉)在varchar(M)類型的數據列里,每個值只占用剛好夠用的字節再加上一個用來記錄其長度的字節(即總長度為L+1字節).
6.表單中 get與post提交方法: 1)get通過url請求來傳遞數據,post通過http post 機制來傳遞數據;2)get方法將表單內各字段名稱與其內容,以成對的字符串連接,置于action屬性所指程序的url之后,而post方法將表單內各字段名稱與其內容放置在 HTML 表頭(header)內一起傳送給服務器端交由 action 屬性能所指的程序處理,該程序會通過標準輸入(stdin)方式,將表單的數據讀出并加以處理。
3)安全方面 get 不如 post
4)對于get方式,服務器端用Request.QueryString獲取變量的值,對于post方式,服務器端用Request.Form獲取提交的數據
5)get傳送的數據量較小,不能大于2KB, post傳送的數據量較大
6)執行效率 get > post建議:查詢數據時,用Get;而在做數據添加、修改或刪除時,用Post 7.Session 與 cookie :
8.echo print()print_r(): echo是PHP語句, print和print_r是函數,語句沒有返回值,而函數可以有返回值.echo 輸出一個或者多個字符串;print()只能打印出簡單類型變量的值(如int,string);print_r()可以打印出復雜類型變量的值(如數組,對象)
9.Smarty: Smarty是一個使用PHP寫出來的模板引擎,是目前業界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內容,提供了一種易于管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離。簡單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內容不會影響到前端人員的頁面設計,前端人員重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。10.svn命令:svn co svn ci svn up svn add svnrmsvn diff svn merge svn lock svn list svn info svn log 11.對于大流量的網站,解決訪問量的方法:1)確認服務器硬件是否足夠支持當前的流量
2)數據庫讀寫分離,優化數據表
3)禁止外部的盜鏈,控制大文件的下載
4)使用不同主機分流主要流量 5)PHP程序生成靜態文件減輕服務數據庫壓力
5)使用PHP緩存技術、或第三方的mamcached等緩存技術減輕服務器壓力 12.include 和 require : 1)include放在文件的任何位置隨時載入,require需要放在頭部預先載入 2)不致命與致命(停止執行)
3)如果有包含這些指令之一的代碼和可能執行多次的代碼,則使用require()效率比較高
13.mysql_fetch_row和mysql_fetch_array:mysql_fetch_row是從結果集取出1行數組,作為枚舉;mysql_fetch_array是從結果集取出一行數組作為關聯數組,或數字數組,兩者兼得.14.用PHP打印出昨天的時間: echo date(“Y-m-d H:i:s”, strtotime(“-1 day”);15.原格式:2010-11-23 17:30 轉新格式:10年11月23日 5點30分$intTime = strtotime(‘2010-11-23 17:30’);echo date(“Y-m-d h-I”, $intTime);16.寫出兩種連接mysql的模式代碼: 1)mysql_connect(host, user, password);mysql_select_db(database);2)$aPdo = new PDO(“mysql:host=
;dbname= “, user, password);17.取得查詢結果集總數的函數: mysql_num_rows($result);mysql_num_rows($result);18.寫出PHP5權限控制修飾符: private public protected 19.實現字符串翻轉的函數: echo strrev($str);20.用PHP寫出顯示客戶端gethostbyname(“,如何得到它的內容: file_get_contents(”http://“);
echo 22.在HTTP 1.0中,狀態碼401的含義是: 未被授權.如果返回“找不到文件”的提示,則可用 header 函數,其語句為: header(“HTTP/1.0 404 Not Found”);注: header函數可以把瀏覽器轉向到另一個頁面
在PHP中,heredoc是一種特殊的字符串, 它的結束標志必須? 1)heredoc的語法是用”<<<“加上自己定義成對的標簽,在標簽范圍內的文字視為一個字串 例子: $str = << 3)位于開始標記和結束標記之間的變量可以被正常解析,但是函數則不可以 23.JS表單彈出對話框函數是?獲得輸入焦點函數是? alert()prompt()confirm(); focus();24.JS的轉向函數是: window.location.href;25.怎么引入一個外部JS文件: 26.優化MYSQL數據庫的方法: 1)選取最適用的字段屬性,應該盡量把字段設置為NOT NULL,這樣在將來執行查詢的時候,數據庫不用去比較NULL值。 (2)使用連接(JOIN)來代替子查詢(Sub-Queries)(3)盡量少使用 LIKE 關鍵字和通配符 27.請舉例說明在你的開發過程中用什么方法來加快頁面的加載速: 要用到服務器資源時才打開,及時關閉服務器資源,數據庫添加索引,頁面可生成靜態,圖片等大文件單獨服務器.使用代碼優化工具.28.sort()、asort()、和ksort()有什么分別: sort(): 根據陣列中元素的值,以英文字母順序排序,索引鍵會由 0 到 n-1 重新編號。asort(): 與 sort()一樣把陣列的元素按英文字母順序來排列,不同的是所有索引鍵都獲得保留.ksort(): 根據陣列中索引鍵的值,以英文字母順序排序.29.清空表 truncate table XXX;刪除表drop table XXX 30.javascript能否定義二維數組,如果不能你如何解決: 不支持二維數組定義,可以用arr[0] = new array()來解決.31.假設a.html和b.html在同一個文件夾下面,用javascript實現當打開a.html五秒鐘后,自動跳轉到b.html: 32.利用CSS樣式表定義已訪問的超鏈接字體大小為14pt,顏色為red : a:visited { font-size: 14pt;color: red;} 33.寫出一個正則表達式,過慮網頁上的所有JS/VBS腳本(即把script標記及其內容都去掉): alert('cc');“;echo preg_replace(”//si“, ”替換內容“, $script);?> 34.“===”是什么?試舉一個“==”是真但“===”是假的例子: 35.寫一個函數驗證電子郵件的格式是否正確: functioncheckEmail($email){ $pregEmail = ”/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i"; return preg_match($pregEmail,$email);} 36.error_reporting(2047)的作用是: report all errors and warnings.37.寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾: 面試題2最后一題 38.foo()與 @foo()的區別: foo()會執行這個函式,任何解譯錯誤、語法錯誤、執行錯誤都會在頁面上顯示出來;@foo()在執行這個函式時,會隱藏所有上述的錯誤訊息 39.你如何利用 PHP 解決 HTTP 的無狀態本質: 最主要的倆各選擇是 session 和 cookie。使用 session 的方法是在每一頁的開始加上session_start(),然后利用 $_SESSION 散列表來儲存 session 變量。至于 cookie 你只需記著一個原則:在輸出任何文字之前調用set_cookie()函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 變量。 40.PHP中error_reporting這個函數的作用:設置php腳本運行期間的錯誤的級別 level of errors 41.簡述如何得到當前執行腳本路徑,包括所得到參數: 面試題 4 42.有一個一維數組,里面存儲整形數據,請寫一個函數,將他們按從大到小的順序排列。要求執行效率高。并說明如何改善執行效率。(該函數必須自己實現,不能使用php函數): 面試題 4 43. 6年老鳥談php學習方法 對于PHP,很多朋友抱怨發展問題,能力問題。還有自己以后的發展及薪水問題。還有一些口吻就是PHP不行,不適合大型架構等等。快下班了,作為一個開發PHP已經6年多了老鳥,在這里隨意說上幾句。希望能對那些剛剛入門的PHPER有些幫助。 首先任何語言的能力關鍵在于自己的技術能力。否則給你一架波音飛機,你不會開,那它都不如自行車跑的快。 首先作PHP程序員應該從思想上認識到這是值得驕傲的事情。因為你已經進入了FREE的領域。 從技術角度講做JAVA程序員也是驕傲的事情;而作ASP呢。如果也能很好的開發COM組件也是很強的程序員。其實并不在于語言,而在于人。 PHP是門檻低,但是有幾個人摸到了它的天花板呢? 學習PHP基本功很重要。最好有數據結構的學習經歷。 對于1,2年的新手來說。在2年內必須完全掌握 smarty+pear+adodb+xml+ajax 工具類必須熟練掌握 zend studio 的開發。 數據庫必須熟練掌握 mysql & sqlserver 操作系統必須對liunx有一定的了解。并能配置環境。 對apache也應該買本管理員手冊好好看看。 以上為2年內,必須掌握的內容 第三年,如果沒有.NET或者JAVA類的開發經驗,請需要補補了。 因為.NET和JAVA的思想比PHP要成熟的多,同樣學習SQLSERVER也是為了提高mysql的使用水平。數據庫可不是簡單的建表查詢就可以了。 所以我建義第三年的時候,多補充思想及數據庫方面的內容。但是這并不意味前2年就不看。我的意思是第三年更趨于此。因為在這個時候,你對PHP的很多基礎部分已經了然于胸了,然后需要一個整體的提高,而不是很片面的提升。 這個時候,你就要考慮架構問題了。 第四年,當你部署一個大型項目的是否。負載及文件分布還有安全,等等部署方面的問題接踵而來。這個時候你要去努力理解什么是file server 集群,什么是web server集群 什么是database 集群等等。然后這些對你編碼又有什么提高的要求等等。 第五年。嘗試努力學習C及C++這個時候你將對棧還有指針還有內存有一個更深刻的了解。 最近面試的筆試過程中經常遇到同一題就是:分別說出echo、print()、print_r()、printf()、sprintf 的區別。 剛開始覺得真的挺沒勁的這題,不就是個輸出嗎?有必要總考嗎?今天卻被一個考官考住了。(他的概念性知識真的夠多) 費話不多說,下面就給大家答案(知道的朋友別不耐煩,筆試你不一定能準確寫出答案): echo():用于輸出一個或多個字符串,echo()實際上不是一個真正的函數,它是PHP的語言結構也就是PHP的語句(語句沒有返回值)。 print():該函數功能和echo()一樣,不同的是print()有返回值。成功返回 1,失敗則返回 0。 printf():該函數是用于輸出格式化的字符。 sprintf():該函數有用法和printf()的格式一樣,但sprintf()不是輸出字符串,而是將格式化的字符串以返回值的形式寫入到一個變量中。 print_r():可以打印出復雜類型變量的值(如數組,對象),如果給出的是 string、integer 或 float,將打印變量值本身。如果給出的是 array,將會按照一定格式顯示鍵和元素。 上面寫的比較多(為了大家能看懂),你可以根據自己的理解用自己的語言來描述它們的不同和用處。 希望這些能對大家有用。 關于在學習php 和mysql的過程中遇到的問題及解決辦法 1.安裝Easyphp(很容易,按導航做就可以),在安裝成功后,運行Easyphp時,提示mysql端口被占用怎么辦? 使用360軟件管家-〉開機加速-〉管理正在運行的軟件,找到占用端口的軟件,關閉即可。 2.如何將.sql文件導入到mysql中? 首先將要導入的文件放入到bin文件夾下,然后在菜單選項中打開cmd命令行程序,接著輸入:cd/就可以退到c盤根目錄下了,然后輸入cdC:Program FilesEasyPHP-5.3.9mysqlbin回車,在下一行中輸入: mysql-u root –p回車,在下一行出現enter key:直接回車就行了(如果沒有密碼的話),在下一行就會出現mysql>,這時可以輸入:create database phone;回車,輸入:use phone;回車,輸入:source c:phoneareas.sql;到這,.sql文件就已經導入到mysql中了。 3.導入的文件在輸出到mysql中時是亂碼,怎么辦? 找到my.ini文件,在文件中找到mysql 行輸入default-character-set=utf8,再找到mysqld 行輸入character-set-server=utf8即可。 4.在php的文本編輯中,連接到mysql要進行查詢,在查詢語句中匹配有漢字,就無法查出正確的結果怎么辦? 將該文本編輯另存為,然后在編碼中選擇額utf-8就可以了。 5.如何顯示文件后綴名? 在計算機中找到組織,在組織中找到文件搜索項,在搜索項中找查看,在查看中有隱藏文件類型的擴展名,勾了就可以了。 www.tmdps.cn PHP程序員面試主要應該注意哪些問題 大數據的火爆,讓很多企業都意識到發展大數據的重要性,那么是不是所有企業都可以成為大數據公司? 美國麥肯錫公司近期開出了一張書單,列出利用大數據進行自我發展的一些潛力行業,其中就有電信、金融、保險、信息、交通、醫療等,都可以利用大數據技術,從中獲得很大的發展空間。 大數據將是軟件產業一個非常重要的發展方向。 我們知道,現在從IT時代走向DT時代,也就是數據技術的時代。將來每一家公司都有可能成為一家大數據公司,大數據將成為一種核心的競爭力。剛剛在貴陽召開的數博會顯示,大數據將成為中國“十三五”期間重點規劃的產業,這將是堅定不移的戰略。 在2016年第二十屆中國國際軟件博覽會專題論壇上,華盛頓大學陳一昕教授表示:一些行業通過與大數據有機結合,比如在電信行業,電信運營商的中國移動、中國電信、中國聯通(600050),包括一些其他的公司,比如亞信、東方國信(300166)等等,作為電信運營商,都能做好大數據的變現業務。目前而言,電信行業其實面臨著非常大的挑戰,隨著國家提出降費的要求,運營商的流量被管道化,公眾因此就會利用微信等工具,進而導致運營商可能面臨著新的發展困境,競爭也由此更加激烈。 在電信運營商看來,他們的數據其實是一塊非常重要的資產,也就是說,公眾可以看到電信運營商擁有穩定的數據源,每個人手機上時刻產生大量數據,包括用戶的套餐、和誰通話、基站位置、地理位置、有沒有欠費等數據,以及數據的變現問題。陳一昕說:“電信運營商擁有著一座巨大的數據金礦,但是,如何把這些金礦當中的礦石打造成金戒指,這是運營商面臨的巨大挑戰。” 醫療行業和大數據結合,會有非常大的潛力。關于這一業務,第一次驅動力是醫保核算,以醫院的需求為指導。第二次是互聯網+醫療,通過新醫改,醫療信息化,特點是以政府需求為主導,以共享為核心的區域醫療信息化。目前,第三次浪潮的驅動力應該說是移動醫療、大數據分析,其特點是健康管理,不光是在醫院內部,同時也在醫院外部。 我們可以看到隨著醫療行業的重大變化,它的數據量是越來越大了,其從原來簡單的結構化數據,到現在的醫療大數據,其中包含了大量的非結構化的數據,比如說像圖像、文檔。中國一個中等城市50年積累的數據達到10個PB,如何處理和分析挖掘這些數據價值,相信這里面有巨大的市場。 www.tmdps.cn 教育行業,也是我國信息化戰略的重要組成部分。陳一昕表示,目前在線學習市場,也是非常大的市場,在線教育市場以年均18%的速度在增長,2017年預計在線學習人數達到1.2億人,基礎教育一年的數據量也是非常龐大的,我們可以看到一年的數據量達到ZB級別,利用教育的數據、互聯網的技術,以及云計算等等,這些技術促使在線教育繁榮。陳一昕覺得,未來教育還是線上線下相結合的模式。就像以前的計算機技術收到追捧一樣,在DT時代,大數據培訓開始受到重視。 金融行業,在大數據的技術來看,我們可以看到金融行業是大數據技術,相對而言,它是走在前面的行業,因為金融行業更依賴于數據。很多層面上,金融業的大數據技術是走在其他行業前面的,包括銀行要對用戶進行風險分析,精準控制。保險業更需要通過大數據,對用戶進行分析,進行潛在用戶的挖掘,對欺詐行為進行預防。另外在證券行業,現在量化交易也是發展非常快,對股價的預測、對投資的趨勢等等都可以用大數據的技術來進行管理,進行優化。 陳一昕同時強調了醫療養老數據的安全隱私這一塊,數據不會丟失,數據不會惡意的泄露或者盜竊,從數據安全角度來看是非常重要的。 四川地處中國大西南,肥沃的土地,豐富的自然資源,悠久的歷史和絢爛多彩的少數民族文化,構成了多樣性的自然和文化旅游資源。隨著社會物質文明和精神文明的不斷提高,越來越多的人在社會的殘酷競爭中優勝劣汰!在追求男女平等的同時,男生和女生卻面臨同樣的競爭,這就是社會生存潛規則。現代的女孩在商業圈中叱咋風云,一點都不會比男生差,可是那些沒有學歷,沒有一技之長的女該該怎么展現自己呢? 大家還在為如何選擇it培訓而絞盡腦汁嗎?各位還在網上搜尋相關信息嗎?別麻煩了,就讓小編為大家一網打盡吧!下面就讓小編帶領各位去了解一下it培訓吧! www.tmdps.cn php程序員作為一個web應用開發的熱門職業,已經越來越受IT求職者的青睞。但是很多人在求職的時候,都不知道自己應該去什么公司面試,應該把簡歷投給哪家公司,在去面試前自己需要準備什么材料。今天國信安小編就給大家介紹一下PHP程序員面試應該注意哪些問題。 1、應該把簡歷投給哪家公司 現在php的職位主要分為兩大類 一種是接外包公司的程序猿,外包公司的性質就是公司的項目不斷,程序員的工作基本上就是不斷地重復制造各類型的網站給公司客戶,完了還有各種類型的需求修改,基本上做的都是比較簡單類型的項目,很少有機會接觸到大數據,高并發這類型的技術,很適合大學剛出來的實習生或者剛畢業的畢業生。 還有一種就是做自己公司的平臺開發,公司本來就有自己的應用產品或者準備研發一款自己的產品,類似于美團外賣,拉勾網這樣子,這類型公司的程序猿要做的就是幫助公司研發產品,完成產品經理的需求開發,更多的是做技術攻關,這類產品多數都會有高并發,大數據整理,平臺推廣的工作,所以在這類平臺工作的程序猿普遍的技術要求都比較高,比較適合有兩到三年工作經驗以上的程序猿。 2、去面試前自己需要準備什么 如果是去外包性的公司面試的話,需要準備的東西不會很多,首先你的基礎知識肯定是要懂的,數據庫的增刪改查也需要懂的,一些前端知識,掌握一 www.tmdps.cn 兩個常用的技術框架,只要有這些技術,基本上要找到一份外包公司的工作就不會太難。 如果是去第二種類型的公司工作的那話那你需要會的東西就需要比較多一點,上面說的那些技能你要有之外,你還必須會緩存技術,數據優化技術,項目架構搭建技術,服務器的維護技術等,根據你要面試不同的企業,可能還會有一些比較奇葩的標準,有了這些技術做前提,那么你要到比較好一點的平臺發展難度會大大降低。 第二種人才大都是從第一類人才發展過來的,所以新手程序員在你工作一段時間積累了一定的工作經驗之后,一定要總結自身的發展規劃,及時更新自己的技術水平,這樣你才有可能從一個初級程序員轉為一個中級程序員。至于要怎么樣才能成為高級程序員,我覺得就是要不斷地堅持,不斷地學習,在應用技術掌握的同時,不斷進階,爭取掌握一定的算法跟底層開發的能力,那么你的高級程序員的夢想應該也不會太遠。 國信安PHP培訓課程以大數據集群作為新教學模式的切入點,以實戰項目驅動教學,注重培養學員的編程思想,培養的是企業急需的實用型開發人才。 國信安IT培訓基地指定的官方IT人才培訓機構。專注java培訓、php培訓、UI設計培訓、IOS培訓、安卓培訓、嵌入式培訓、.NET培訓、web前端培訓等培訓課程。你們準備好怎么學習IT技術了嗎?來參加國信安IT培訓課程,你的選擇不會有錯! PHP課后習題 第一章自測題 一、單選題 1.動態網站隸屬性下面哪一種軟件開發形式() A.應用程序開發 B.C/S架構軟件 C.嵌入式程序開發 D.B/S架構軟件 2.在下面的選項中,哪一種Web構建在開發動態網站時通常用于接收井處理用戶事件() A.HTML B.CSS C.JavaScript D.PHP 3.下面幾個后臺腳本編程語言中,哪個屬于開源的軟件() A.ASP B.PHP C.JSP D.CGI 4.下面幾個Web構建中,哪個可以直接作為數據庫的客戶端應用處理數據庫中的數據() A.JavaScript B.Apache C.Linux D.PHP 5.用于調整網頁的外觀和布局的Web構建是下面選項中的哪一個() A.PHP B.JavaScript C.CSS D.XML 6.構建一個網站開發平臺,希望具有簡易性、低成本、高安全性、開發速度快并且執行靈活,可以選擇下面選項中哪一種網站開發平臺() A.ASP.NET B.J2EE C.LAMP D.CGI 7.下面選項中,哪個不屬于URL的組成部分() A.傳輸協議 B.主機 C.端口 D.Internet 8.如果選用LAMP平臺開發Web程序,下面選項中不能使用PHP處理的工作是() A.接收用戶表單 B.處理用戶事件 C.圖像處理 D.生成HTML輸出 9.在下面的選項中,可以由Web服務器Apache完成的工作是哪一個() A.解析PHP文件 B.連接處理數據庫 C.主動建立與客戶端連接 D.發布網站 10.在下面的選項中,對MySQL數據庫描述不正確的是() A.MySQL屬于C/S結構軟件 B.在LAMP組合的開發平臺中,MySQL用于保存網站中的內容數據 C.可以使用PHP作為MySQL客戶端程序連接并處理MySQL服務器 D.MySQL服務器必須和Apache服務器以及PHP應用服務器安裝在同一臺電腦中 二、練習題 1.了解B/S軟件體系結構的特點。 2.掌握動態網站開發所需要的Web構件,及每種構件在Web開發中的用途。3.了解網站的運行過程,Web的王作原理 4。了解HTTP請求/響應模式的過程,及URL的作用 5.探索LAMP組合的特性及應用領域 第二章自測題 1.下載最新版本的源代碼包,在Linux操作系統下為自己安裝一個最好的LAMP運行平臺,并配置好phpMyAdmin。 2.下載各種軟件的最穩定版本,在Windows操作系統中獨立安裝屬于自己的PHP T作平臺,要求設置好每個軟件的安裝路徑,井配置好phpMyAdmin。 3.挑選一種自己喜歡的PHP及相關軟件的集成版本,安裝并進行設置。 4.不管是安裝的哪一種開發環境,找到Apache、MySQL、PHP的安裝目錄和它們的配置文件,以及網頁發布目錄的位置。 第三章自測題 一、單選題 1.Apache是()服務的服務器程序 A.www.tmdps.cn)A.strchr, split,var_dump B.strstr,explode, print_r C.srrstr,explode, echo D.Strchr,split, var,_dump 5.下面哪個正則表達式,可以從服務器上取到訪問域名第二層()A.preg_replace(“/.*([^.V]+)(.(comlnetlorg))?.[^.V]+$/”,“1”, $_SERVER['HTTP_ HOST'])B.preg_replace(“/.*?([^.V]+)(.(comlnetlorg))?.[^.V]+$/”,“1”,$_SERVER['HTTP_ HOST'])C.preg_replace(“/.*([^.v]+)(.(comlnetlorg))?.[^.V]+$/”,“1”,$HTTP HOST)D.preg_replace(“/.*?([^.V]+)(.(comInmlorg))?.[^.V]+$/”,“1”,$HTTP_HOST)PHP中,下列哪個函數是將字符串前后顛倒()A.strrev() B.strrpos()C.strstr() D.sirfiirst()6.下列那個選項是正確的引用文件的方法:()A.require和include B.re:quire和function C.define和include D.function和include 7.以下字符的長度是() $text=“ tllo ”; echo strlen(trim($text)); ?> A.9 B.5 C.7 D.3 8.將字符串中所有英文單字的開頭字母轉換為大寫的函數應該是()A.ucfrrst(“字符串”) B.strtolower()C.strtoupper() D.ucwords() 二、練習題 1.寫出一個函數驗證電子郵件的格式是否正確。 2.寫出一個正則表達式,過濾網頁上的所有JavaScript/VBScript腳本(即把script標記及其內容都去掉)。3.編寫一個PHP腳本程序,用于接受用戶在表單中的輸入,井要求在該腳本中進行數據效驗(在客戶端表單中有以下字段和需要效驗的格式)。 Name 請輸入你的名字,單行,32個漢字以下.8個漢字以上 Title 請輸入標題,單行,64個漢字以下,不能為空 Body 輸入文本內容,多行,不限 E-mail 請輸入郵件地址,按電子郵件格式效驗 Birthday請輸入生日,按YYYY-MM-DD格式效驗 第八章自測題 自測題 一、單選題 1.以下哪個錯誤級別會使程序崩潰,阻止并退出程序()A.E_WARNING B.E_NOTICE C.E_ERROR D.以上都可以 2.下面劉PHP錯誤日志描述不正確的是() A.可以錯誤記錄到Apache服務器的錯誤日志文件error.log 中 B.記錄錯誤日志到自己指定的文件中 C.可以將錯誤日志發送給系統syslog D。在寫入錯誤日志之前,應該先在PHP配置文件中將displa y_errors選項開啟 3.關于PHP 5中的異常,下列四句描述中哪句是錯誤的() A.異常也是一個類 B,為了拋出我們自建的異常,我們必須使用throw語句實現 C.異常在拋山后會在父一層被自動消滅掉 D.要容忍某些特定的異常,我們應該使用try?catch語法的同時,留空catch段 4.下面哪個函數不能返回UNIX時間戳() A.Time() B.strtotime() C.localtimeo D.gmrnktime()5.當前GMT時區的時間戳和當前本地的時間戳,在秒上有什么區別() A.這取決于本地時區和GMT時區之間小時數的差別 B.沒有任何區別 C.本地時區和GMT時區完全匹配時才相等 D.沒有可比的地方 6.以下哪一個是最簡單的方式將microtime()轉化輸出為一個單一的數值() A.$time=implode(' ',microtime()); B.$time=explode(' ',microtime());$time=$t.ime[0]+$time [1]; C.$time=microtime()+microtime(); D.$time=arr ay_sum(explode(' ',microtime()));7.下面程序運行結果為() $nextWeek=timeO+(7*24*60*60); echo 'Now:'.date('Y-m-d').“n”; echo 'Next Week:'.date('Y-m-d',$nextWeek).“n”; ?> A.得到今天的日期(月-曰) B-得到今天的U期(年-月-U)與下周的日期(年-月-日) c.得到現在的時間(小時-分-秒) D.得到現在到下周的時間間隔 8.使用PHP的GD函數庫動態創建圖像時,需要先獲取圖像資源,下面函數中哪一個不能創建圖像資源() A.imagecreate() B.imagec:reatetruecolor() C.imagecreateflromjpeg() D.imagecolorallocate() 二、練習題 1.簡述PHP中error_reporting函數的作用是什么。 2。使用PHP的日期和時間函數,打印出“前一天“的日期和時問信息(輸出可以參考2009-5-12 11:05:30格式)。 3.使用PHP的GD函數庫編寫一個具有縮放圖片和添加水印功能的類(要求支持中文水印)。 第十一章自測題 一、單選題 1.怎樣打開或創建一個文件() A.open() B.fopen() C.fwriteo D,write()2.下面哪兩個參數用來提示fopen()函數打開一個文件進行讀取并寫入() A.w B.r c.a D.+ 3.哪個函數用來從文本文件里面讀取一個單獨的行,但是當你需要讀取二進制數據或者其他格式的文件的時候,你需要使用哪個函數() A.fgets(),fseeko B.freda(),fgets0 C.fputs(),fgets() D.fgets0,fread()4.下面代碼中file_ exists的意義是() $ filename-‘/path/to/foo.txt’; Iq(file_exists($fil.encame)){ Echo“The file $filenfune exists”; }else{ echo “Thcfile$filename does not exist”;) ?> A.測試字符串 B.測試數組 C.測試變量 D.測試一個文件是否存在 5./tmp是上傳文件的默認存儲目錄,如果更改這個目錄需要編輯哪個文件的哪個屬性值(A.php.ini文件的upload_tmp_dir屬性 B.php.ini文件的uploaud_dif屬性 c-php,conf文件的upl'oad_tmp_dir屬性 D.php+conf文件的upload_dir屬性 6.以下代碼運行結果為() php $fp=fopen(”/etc/passwd“,”rt“); $data=fgets($fp,12); echo ftell($fp); fclose($fp); ?> A.13 B.11 C.0 D.10 7.File()函數返回的數據類型為() A.數組 B.字符串 C.整型 D.根據文件來定 8.PHP中刪除文件的函數是() A.rm B.del C.unlink D.rm-if 9.PHP中,可以用來接收上傳的文件的函數是() A.$一FILES B-copys C.is_uploadnle D-move_uploaded_file 10.PHP中用來刪除當前日錄的函數是() A.chdir B.cd C.opendir D.rmdir =、練習題 1.使用PHP的文件處理函數實現網頁靜態化功能。 2.寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。 3.在沒有數據庫的環境下,以文件替代數據庫實現一個完整的網頁留言板功能。 第十二章自測題 一、單選題 1.下列哪些數據庫管理系統是PHP不支持的()A.MySQL B-IBM DB2 C.PostgreSQL D.Microsoft SQL Server E.以上沒有一個PHP不支持 2.請看下面的SQL查詢語句,選擇哪兩項可以減少從數據庫返回的數據量()SELECT*FROM MY —TABLE A.轉為存儲過程 B.用具體的字段名來代替“*” c.加一個“wnere”語句 D.轉變查詢為視圖 E.使用預語句 3.下面哪個不是一個合法的SQL的歸類函數() A.AVG B.SUM C.MIN D.MAX E.CURRENT_DATEO 4.mysql_affected_rows()對哪個操作沒有影響() A.SELECT B.DELETE C, UPDATE D.INSERT 5.取得搜索語句的結果集中的記錄總數的函數是() A.Mysql-fetch-row B.mysql-u root password tcst C.mysql_num-rows D.mysql-u root-password test 6.mysql_insert_id()函數的作用是() A.盤看下一次捅入記錄時的ID號 B.查看剛剛插入過的自動增長ID值 C.查看一共做過多少次insert操作 D.查看一共多少條記錄 7.修改MySQL崩戶root的密碼的指令是(A.mysqiadmin—u root password test B.mysql-u root password test C.mysql—Ll root—ptest D.mysql-u root-password test 8.以下代碼執行結果是() A.報錯 C.循環換行打印全部記錄 B.只打印一條記錄 D.無任何結果 B.查看剛剮插入過的自動增長ID值 D.查看一共有多少條記錄 9.假設-f一個數據庫mydb中有一個表tb】,表中有六個字段,主鍵為ID,有十條記錄,ID從0到9,以下代碼輸山結果是() $link 2 mysql_c.onnec.t(”IocalhostrP, “mysql_user't, ”mysql_passwordr') or die(l'Could not connelc.t:”.m ysql_erroH)); tSresult 2 mysql_query{T'SELECT i.d,name,age FROM mydb.tbl where id<5"); or die(P'Could not query:.mysqI—error(》; echo mysql_num_fields(S;result.); mysql_close{'$tink); ?> A,6 B.5 C.4 D.3 10.使用以下哪條指令能夠實現數據庫的長久連接() A.mysql_connecE B.mysql_con nectd C.mysql_pconnetcd D.mysql_pconnect 1 1.建立一個“學生”表Student,它由學弓Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成。其中學號不能為空,值是唯一的,并且姓名取值也唯一,下列哪個選項正確() A.CREATE TABLE.Student(Sno CHAR(5)NOT NULL UNIQUE, Sname CHAR(20)UNIQUE,Ssex CHAR(1),Sage INT* Sdep CHAR(1 5)): B- CREATE TABLE Student(Sno CHAR(5)NOT NULL UNIQUE, Sname CHAR(20)UNIQUE,Ssex CHAR(I)Sage INT, Sdept CHAR(15)); C.CREATE TABLE Student(Sno CHAR(5), Snarm: CHAR(20)UNIQUE* Ssex CHAR(I), SageINT.Sdept CHAR(15)); D-CREATE TAHLE Student(Sno CHAR(5)NOT NULL UNIQUE, Sname CHAR(20)UNIQUE,Ssex CHAR(l), Sdcpt CHAR(1 5)): 12.查詢所有年齡在20歲以下的學生姓名及其年齡,以下正確的是() A, SELECT Sname,Sage FROM Student.WHERE Sage<=20; B.SELECT Sname,Sage FROM Student WHERE NOT Sage<20; C-SELECT Sname,Sage FROM Student WHERE NOT Sage>20; D.SELECT Sname,Sage FROM Studcnt WHERE Sage<20;13.查詢名字中第2個字為“陽”字的學生的姓名和學號,下列正確的是() A.SELECT Sname,Sno FROM Student WHERE Sname LIKE '_陽%'; B.SELECT Sname,Sno FROM Student WHERE Sname LIKE'陽%': C.SELECT Sname,Sno FROM StU dent WHERE Sn ame LIKE'一陽'; D.SELE CT Sn ame,Sno FROM Student WHERE Sname LIKE'陽_%';14.HAVING短語與WHERE子句的區別是() A.WHERE進擇滿足條件的組 B.HAVING選擇滿足條件的元組 C,作用對象不同 D.查詢條件不同 15.導山數據庫正確的方法為() A.mysqldump數據庫名>文件名; B,mys qldump數據庫名>>文件名; c.mysqliciump數據庫名 文件名; D.mysqldump數據庫名=文作名; 16. 卜面哪一項不是有效的SELECT語句() A.SELECT astname,firstname FROM customers; B-SELECT*FROM orders; C.Select FirstName NAME from CUSTOMERS; D,SELECT lastname Last Name FROM customers;1 7.以下ALTER語法不正確的是() A.ALTER TAHLE tl RENAME t2; B.ALTER TABLE t2 MODIFY a TINYINT NOT NULL; C.ALTER TABLE t2 MODIFY a TINYrNT NOT NULL, CHANGE b CHAR(20); D.ALTER TABLE t2 ADD c INT UNSIGNED NOT NULLAUTO_INCREMENT, ADD INDEX(c);1 8.下面哪一個不是有效的約束類型() A.PRIMARYKEYS B.UNIQUE C.CHECK D.FOREIGN KEY 19.MySQL.中表的默認類型為() A.ISAM B.InnoDB C.MyISAM D.HE.AP 二、練習題 1.實現用戶注冊功能。需要建一張用戶信息表,并編寫注冊和結果兩個頁面。用戶在注冊頁面填寫注冊信息,提交到結果頁面后顯示注冊的結果。 具體要求: (1)在MySQL數據庫的test數據庫中,創建一張用于存放用戶注冊信息的表,表中有描用戶名”、“密碼”兩個字段,并且設置“用戶名”字段為主鍵; (2.)用戶注冊頁面要顯示一個輸入框、一個密碼框和一個“注冊”提交按鈕: (3)用戶單擊“注冊”按鈕時,耍用JavaScript技術對用廣的輸入信息進行判斷,包括 用戶名或者密碼不能為空,密碼的長度必須大于6位,用戶名和密碼的長度必須小于10位。假如用戶輸入不符合上述規范,則彈出相應的錯誤提示信息終止提交;只有當用戶輸入滿足上規范時,才允許將表單提交到結果頁面; (4)如果用戶名在表中已經存在,則在結果頁面提示用戶重新輸入用戶名; (5)如果用戶名在表中不存在,則將用戶的注冊信息插入到數據庫中,并在結果頁面顯示“注冊成功”的提示信息; (6)用戶注冊成功后,在結果頁面顯示“現在已經有×X位注冊用戶了!”并將所有的注 冊用戶信息以列表方式顯示出來。 2.在M.ySQL數據庫,使用的用戶名為root,密碼為php。其中的一個數據庫名稱為lamp,其中的有兩個表名為type和border。下面為兩個表中的關系與數據: 表type 表Border 編寫一個腳本遍歷兩張表中的數據形成目錄結構,一級為type表中的數據,每個類別下為border表中的數據。 具體要求: (1)數掘庫文件(具體操作語句)。 (2)正確顯示一級type表中數據。 (3)正確顯示每個類下border表中數據母第二篇:php建議問題
第三篇:php和mysql問題及解答自己總結
第四篇:PHP程序員面試主要應該注意哪些問題
第五篇:PHP課后