PHP經過長時間的發展,很多用戶都很了解PHP了,這裡我發表一下個人理解,和大家討論討論。PHP是一種用於創建動態WEB頁面的服務端腳本語言。如同ASP 和ColdFusion,用戶可以混合使用PHP和HTML編寫WEB頁面,當訪問者浏覽到該頁面時,服務端會首先對頁面中的PHP命令進行處理,然後把處理後的結果連同HTML內容一起傳送到訪問端的浏覽器。
用戶可以直接在WEB頁面中輸入PHP命令代碼,因而不需要任何特殊的開發環境。在WEB頁面中,所有PHP代碼都被放置在“”中。此外,用戶還可以選擇使用諸如 等的形式。PHP引擎會自動識別並處理頁面中所有位於PHP定界符之間的代碼。
PHP腳本語言的語法結構與C語言和Perl語言的語法風格非常相似。用戶在使用變量前不需要對變量進行聲明。使用PHP創建數組的過程也非常簡單。PHP還具有基本的面向對象組件功能,可以極大的方便用戶有效組織和封裝自己編寫的代碼。這裡給大家介紹一下關於PHP上傳的問題。
例子1. 使文件PHP上傳生效
請查閱函數 is_uploaded_file() 和 move_uploaded_file() 以獲取進一步的信息。以下范例處理由表單提供的文件上傳。
- <?php
- // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
- // of $_FILES.
- $uploaddir = '/var/www/uploads/';
- $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
- echo '<pre>';
- if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
- echo "File is valid, and was successfully uploaded.n";
- } else {
- echo "Possible file upload attack!n";
- }
- echo 'Here is some more debugging info:';
- print_r($_FILES);
- print "</pre>";
- ?>
接受PHP上傳文件的腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用 $_FILES['userfile']['size'] 變量來排除過大或過小的文件,也可以通過 $_FILES['userfile']['type'] 變量來排除文件類型和某種標准不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在 PHP 端並不檢查。自 PHP 4.2.0 起,還可以通過 $_FILES['userfile']['error'] 變量來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要麼將該文件從臨時目錄中刪除,要麼將其移動到其它的地方。
如果表單中沒有選擇上傳的文件,則 PHP 變量 $_FILES['userfile']['size'] 的值將為 0,$_FILES['userfile']['tmp_name'] 將為空。如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。