濰坊IT培訓
美國上市IT培訓機構

0536-8222119

熱門課程

PHP初級開發者常見的5種疑問

  • 時間:2016-11-24
  • 發布:濰坊達內培訓
  • 來源:濰坊達內培訓

你在php學習的過程中是不是也會面臨這樣那樣的疑問,不知道該問誰,自己又不能解決,本文繼續為大家總結php學習的基礎知識:PHP初級開發者常見的5種疑問,送給好學上進的你:

文件上傳需要注意哪些細節?

1) 首現要在php.ini中開啟文件上傳;

2) 在php.ini中有一個允許上傳的最大值,默認是2MB。必要的時候可以更改;

3) 上傳表單一定要記住在form標簽中寫上enctype="multipart/form-data";

4) 提交方式 method 必須是 post;

5) 設定 type="file" 的表單控件,并且必須具有name屬性值;

6) 為了上傳成功,必須保證上傳文件的大小是否超標、文件類型是否符合要求,上傳后存放的路徑是否存在;

7) 表單提交到接收頁面,接收頁面使用$_FILES來接收上傳的文件。$_FILES是個多維數組。

維下標是上傳控件的name,二維下標分別為name/type/tmp_name/size/error。

分別代表文件名、文件類型、上傳到臨時目錄下的臨時文件名、文件大小、是否有錯誤。

如果是批量上傳,那么二維下標就是數組,而并非是字符串。

8) 文件上傳后是被放置在服務器端臨時路徑下,需要使用move_uploaded_file ()函數,才可以將上傳后的文件保存到指定目錄。

9) 為了避免上傳文件重名,可以通過上傳的文件名獲取到文件后綴,然后使用時間戳+文件后綴的方式為文件重新命名。

2$_REQUEST、$_GET、$_POST、$_COOKIE 的關系和區別:

1.關系:$_REQUEST包含了$_GET、$_POST、$_COOKIE等的所有內容,是它們的集合體。

2.通過$_REQUEST獲取變量值,PHP頁面因為不確定它是哪種傳值方式,

因此會根據php.ini中的配置來接收值。

php.ini里可以設置,variables_order = “GPC”。其含義是GET,POST,COOKIE.

所以PHP頁面會先從$_GET中獲取,再從$_POST中獲取,然后從$_COOKIE中獲取。

新獲得的值會覆蓋之前獲取到的值。

因此從表現形式上看,$_REQUEST最后是獲取$_COOKIE中的值,如果$_COOKIE中沒有值,

會獲取$_POST中的值,如果$_POST沒有獲取到 ,就去$_GET中獲取。

如果$_GET中也沒有該值,那么$_REQUEST就返回null。

3什么是SQL注入?如何防止SQL注入?

SQL注入攻擊是黑客對數據庫進行攻擊的常用手段之一。一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,注入者可以在表單中輸入一段數據庫查詢代碼并提交,程序將提交的信息拼湊生成一個完整sql語句,服務器被欺騙而執行該條惡意的SQL命令。注入者根據程序返回的結果,成功獲取一些敏感數據,甚至控制整個服務器,這就是SQL注入。

要對提交的信息進行過濾,對單引號進行轉義。首先可以在php.ini中設置,讓所有的單引號在提交后都進行轉義?;蛘呤褂胊ddslashes().

4MVC的概念是什么?

MVC(即模型-視圖-控制器)是80年代發明的一種軟件設計模式或者說編程思想。

M指(Model)模型層,V是指(View)視圖層(顯示層或者用戶界面),C是指(Controller)控制層。

使用mvc的目的是實現M和V分離,從而使得一個程序可以輕松使用不同的用戶界面。

C存在的目的則是在M和V之間起到調節作用,確保M和V的同步,一旦M改變,V應該能同步更新。

將M和V分離,就可以做到同一個網頁,在不同節日到來的時候能顯示不同的頁面風格,這只需要提前制作多個視圖層模板頁面,而無需更改M層程序。

MVC做到了編程中的分工合作,代碼的可重用性得到最大化體現,程序邏輯更加清晰而富有條理,便于后期維護管理。

在網站開發中,模型層一般負責對數據庫表信息進行增刪改查,視圖層負責顯示頁面內容,控制器層在M和V之間起到調節作用,控制器層決定調用哪個model類的哪個方法,執行完畢后由控制器層決定將結果assign到哪個view層。

5$this,self, parent分別代表什么?哪些場合下使用

$this代表的是當前對象 self代表的是當前的類 parent代表的是當前類的父類

使用場合:

$this只能使用在當前類中,通過$this->可以調用當前類中的屬性和方法;

self只能在當前類中使用,通過作用域操作符::訪問當前類中的類常量、當前類中的靜態屬性、當前類中的方法;

parent只能使用在有父類的當前類中,通過作用域操作符::訪問父類中的類常量、父類中的靜態屬性、父類中的方法。

作用于操作符的使用場合

a)本類中:

i.self::類常量

ii.self::靜態屬性

iii.self::方法() parent::方法()

b)子類中:

i.parent::類常量

ii.parent::靜態屬性(public或者protected)

iii.parent::方法()(public或者protected)

c)類外:

i.類名::類常量

ii.類名::靜態屬性(public)

iii.類名::靜態方法(public)

php程序員月薪過萬必備技術有哪些?

學php究竟自學好還是參加培訓好?

php工程師在二三線城市需求大嗎?

php工程師學完后好找工作嗎?

達內培訓課程15年沉淀,每年10萬人選擇,選擇人多的自然是好培訓!

上一篇:php連接mysql數據庫的方法
下一篇:一道有趣的IT面試題

馬上預約七天免費體驗課

姓名:

電話:

選擇城市和中心
江西省

貴州省

廣西省

海南省

達內教育

有位老師想和您聊一聊

再正经的男生谈恋爱也会污