PHP程序設計
3.PHP的全稱是:PHP:Hypertext Preprocessor
4.PHP的兩種運行方式是 CGI 和 mod_php
5.以 mod_php模式運行PHP,爲何每次修改php.ini的配置信息都須要重啓apache,配置才生效?
以 mod_php模式運行php,意味着php做爲apache的一個模塊來啓動的。所以只有在apache啓動的時候會讀取php.ini配置文件並加載擴展模塊,在apache運行期間是不會再去讀取和加載擴展模塊的。
6. PHP中echo功能是 什麼?
將PHP後臺運行獲得餓數據輸出到瀏覽器頁面中
7.輸出的不一樣
$"加油";則(1)echo '中國$str!'; 輸出中國$str!
(2)echo "中國$str!" ;輸出 中國加油!
8.其餘類型的變量轉化爲布爾類型時,哪些值被認爲是false?
布爾值false,整形值0,浮點值0.0,空白字符串,字符串'0',空數組,特殊數據類型NULL,沒有設定的變量。
9.在瀏覽器中運行如下PHP代碼,在三個文本框中依次分別輸入一、二、3,則瀏覽器頁面輸出 sparkqty321
10.和C不一樣,PHP函數內訪問函數外申明的全局變量,必須在函數開始處用 golbal 申明
11.PHP中經常使用的幾個預約變量(魔術變量)是那些?
$_post $_get $_request $_session $_cookie $_files $_SERVER $GLOBALS
12. PHP中經常使用的幾個預約義常量(魔術變量)是那些?
_line_ _file_ _dir_ _function_ _class_ _traint_ _method_ _namespace_
13.數組的概念是什麼?數據根據索引分爲那兩種,如何區分?數組的聲明方式主要有那兩種?
數組是一個能夠存儲一組或一系列數值的變量(複合型變量);索引數組(索引值爲數字,以0開始)和關聯數組(以字符串做爲索引值);(3)數組的聲明方式主要用兩種:A 經過array() 函數聲明數組,能夠經過key=>value 的方式分別定義索引和值,也能夠不定義數組的索引下標,只給出數組的元素值。B直接爲元素賦值,不須要調用array() 函數。例如:$arr[0]=1,$arr[1]=2;
14.數組合並函數array_merge() 和數組加法運算$arr1+$arr2 的區別是什麼
- 數組合並函數array_merge( )和數組加法運算$arr1 + $arr2 的區別是什麼?
使用array_merge( ),若是是關聯數組合並,若是數組的鍵名相同,那麼後面的值將覆蓋前者;若是是數字索引數組合並,則不覆蓋,而是後者附加到前者後面。使用數組加法運算,與 array_merge( )不一樣,加法運算不論是關聯數組仍是數字索引數組,都是將相同鍵名的值捨棄,也就是隻保留首次出現該鍵名的元素,後來的具備相同鍵名的元素都不會被加進來。
- 簡述array compact(mixed $varname [, mixed ...])函數的功能。
把一個或多個變量,創建成數組元素,這些數組元素的鍵名就是變量的變量名,值是變量的值。
簡述PHP數組轉換爲字符串、字符串轉換爲數組的方法。
explode ( string $separator , string $string [, int $limit ] ) 使用一個分隔字符來分隔一個字符串。
implode ( string $glue , array $arr ) 使用一個鏈接符將數組中的每一個單元鏈接爲一個字符串。php
- 如下留言功能的代碼存在頁面被篡改(XSS攻擊)的漏洞,請用簡單過濾的方法寫出防止頁面被篡改的完整代碼。
<?php
$Email=$_POST['Email'];
$note=$_POST['note'];
echo "用戶".$Email."您好! ";
echo "
您的留言是:
".$note."
";
?>
- 驗證身份證號碼規則的正則表達式是: #^[0-9]{17}([0-9]|X|Y)$# 。
- 簡述PHP函數file_get_contents( )的功能。
與依次調用fopen( )、fwrite( )及fclose( )函數的功能同樣,默認是直接覆蓋原有文件的內容。
- 要使HTML表單生成文件上傳變量必須知足哪3個條件?
(1) 必須使用POST方式提交(設置表單 method="post" );(2) 必須設置表單enctype屬性爲 enctype="multipart/form-data" ;(3) 表單中要有一個文本域控件。html
- 由HTML表單生成文件上傳變量,PHP以數組的形式記錄了上傳文件的詳細信息,這個預約義變量(全局數組)是___$_FILES['上傳控件的name'][ 'name'|'type'|'tmp_name'|'size'|'error'] 。
- Cookie運行在客戶端,Session運行在服務器端,對嗎?
不徹底正確。Cookie是運行在客戶端,由客戶端進行管理;Session雖然是運行在服務器端,可是sessionID做爲一個Cookie是存儲在客戶端的。
- Session 比Cookie更安全嗎?不該該大量使用Cookie嗎?
錯誤。Cookie確實可能存在一些不安全的因素,但和JavaScript同樣,即便突破前端驗證,還有後端保證安全。因此,一切都要看設計。若是說不安全,也是因爲代碼不安全,錯誤地把身份驗證的Cookie做爲權限驗證來使用。
- 若是把別人的機器上的Cookie複製到個人電腦上(假設使用相同的瀏覽器),是否是可以登陸別人的帳號?
是的。這屬於Cookie劫持的一種作法。
- 在URL中用get傳值的時候,若中文出現亂碼,應該用哪一個函數對中文進行編碼?
使用urlencode()對中文進行編碼,使用urldecode()來解碼。
- PHP中訪問類中靜態成員或函數應經過 類名:: 或self::進行訪問。
- 繼承是代碼複用的一種重要機制,但繼承破壞了封裝性,不恰當的繼承還可能違反現實世界的邏輯。PHP採用了一種更新進的代碼複用機制,它用一致的方式來組合對象,增長了水平特性,這種機制就是PHP的 Traits機制 。
- PHP目前不支持方法重載,但能夠用魔術方法 __ _call 來實現相似於方法重載的功能。
- 有關係模式:cjb(學號, 課程號, 成績),把SQL語言:select * from cjb a where 成績<(select avg(成績) from cjb b where b.課程號= a.課程號),翻譯成中文 查詢考試成績比該課程平均成績低的學生的學號、課程號、成績。 。
- 說說mysql_fetch_row( ) 和mysql_fetch_assoc( )和mysql_fetch_array( )之間有什麼區別?
第一個是返回結果集中的一行做爲索引數組(鍵名是數字的數組稱之爲索引數組),第二個是返回關聯數組(至少有一個鍵名是字符串的數組稱之爲索引數組),而第三個既能夠返回索引數組也能夠返回關聯數組,取決於它的第二個參是MYSQL_BOTH或MYSQL_NUM或MYSQL_ASSOC 默認爲MYSQL_BOTH。
- exec ( )方法是 PDO 類的方法,execute ( )方法是 PDOStatement 類的方法。
- 簡述什麼是事務處理以及PHP中PDO事務處理的實現過程。
事務處理:經過將一組相關操做組合爲一個要麼所有成功要麼所有失敗的單元,能夠簡化錯誤恢復並使應用程序更加可靠。PDO事務處理的實現過程:首先定義數據庫鏈接的參數,建立try{ }catch{ }語句,在try{ }語句中實例化PDO構造函數,完成與數據庫的鏈接,而且經過beginTransaction( )方法開啓事務;而後寫事務處理業務邏輯代碼,經過commit( )方法完成事務的提交操做;最後在catch{ }語句中返回錯誤信息,而且經過rollback( )執行事務的回滾操做。
- 什麼是Ajax?Ajax的原理是什麼?Ajax的核心技術是什麼?Ajax的優缺點是什麼? Ajax是Asynchronous JavaScript and XML的縮寫,是JavaScript、XML、CSS、DOM等多個技術的組合。Ajax的工做原理是一個頁面的指定位置能夠加載另外一個頁面全部的輸出內容,這樣就實現了一個靜態頁面也能獲取到數據庫中的返回數據信息了。因此Ajax技術實現了一個靜態網頁在不刷新整個頁面的狀況下與服務器通訊,減小了用戶等待時間,同時也從而下降了網絡流量,加強了客戶體驗的友好程度。 Ajax的核心技術是XMLHttpRequest,它是JavaScript中的一個對象。Ajax的優勢是:(1)減輕了服務器端負擔,將一部分之前由服務器負擔的工做轉移到客戶端執行,利用客戶端閒置的資源進行處理;(2)在只局部刷新的狀況下更新頁面,增長了頁面反應速度,使用戶體驗更友好。Ajax的缺點是不利於SEO推廣優化,由於搜索引擎沒法直接訪問到Ajax請求的內容。