PHP學習1 — PHP文件處理

来源:http://www.cnblogs.com/JasonLiuys/archive/2017/02/25/6442335.html
-Advertisement-
Play Games

PHP 中 include 與 require Php include (或 require)語句會獲取指定文件中存在的所有文本/代碼/標記,並複製到使用 include 語句的文件中。 這意味著您可以為所有頁面創建標準頁頭、頁腳或者菜單文件。然後,在頁頭需要更新時,您只需更新這個頁頭包含文件即可。 ...


PHP 中 include 與 require 

Php include (或 require)語句會獲取指定文件中存在的所有文本/代碼/標記,並複製到使用 include 語句的文件中。

這意味著您可以為所有頁面創建標準頁頭、頁腳或者菜單文件。然後,在頁頭需要更新時,您只需更新這個頁頭包含文件即可。

可用於編寫標準菜單(多個頁面都有的菜單),定義全局變數。

 

include 與 require 的區別:

require:當文件被應用程式請求時。

include:當文件不是必需的,且應用程式在文件未找到時應該繼續運行時。

 

如需在一張頁面中引用footer.php這個頁腳文件,可使用 include 語句:

 1 <html>
 2 <body>
 3 
 4 <h1>歡迎訪問我們的首頁!</h1>
 5 <p>一段文本。</p>
 6 <p>一段文本。</p>
 7 <?php include 'footer.php';?>
 8 
 9 </body>
10 </html>

 

PHP文件處理:

 

  • readfile(),fopen() 函數讀取文件,並把它寫入輸出緩衝。

    fopen() 的第一個參數包含被打開的文件名,第二個參數規定打開文件的模式。

 

  • fread() 函數讀取打開的文件或創建文件。

 

    fread() 的第一個參數包含待讀取文件的文件名,第二個參數規定待讀取的最大位元組數。

 

  • fclose() 函數用於關閉打開的文件。

 

  • fgets() 函數用於從文件讀取單行。

 

         調用 fgets() 函數之後,文件指針會移動到下一行。

 

  • feof() 函數檢查是否已到達 "end-of-file" (EOF)。

 

  • fgetc() 函數用於從文件中讀取單個字元。

 

         在調用 fgetc() 函數之後,文件指針會移動到下一個字元。

  • fwrite() 函數用於寫入文件。

      fwrite() 的第一個參數包含要寫入的文件的文件名,第二個參數是被寫的字元串。

         重新打開文件fwritr()會覆蓋上次內容(Overwriting)。

 

實例:

1 <?php
2 $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
3 // 輸出單行直到 end-of-file
4 while(!feof($myfile)) {
5   echo fgets($myfile) . "<br>";
6 }
7 fclose($myfile);
8 ?>

 

 

PHP文件上傳

 

 1 <?php
 2 if ($_FILES["file"]["error"] > 0)
 3   {
 4   echo "Error: " . $_FILES["file"]["error"] . "<br />";
 5   }
 6 else
 7   {
 8   echo "Upload: " . $_FILES["file"]["name"] . "<br />";
 9   echo "Type: " . $_FILES["file"]["type"] . "<br />";
10   echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
11   echo "Stored in: " . $_FILES["file"]["tmp_name"];
12   }
13 ?>

 

通過使用 PHP 的全局數組 $_FILES,可以從客戶電腦向遠程伺服器上傳文件。

 

第一個參數是表單的 input name,第二個下標可以是 "name", "type", "size", "tmp_name" 或 "error"。:

$_FILES["file"]["name"] - 被上傳文件的名稱

$_FILES["file"]["type"] - 被上傳文件的類型

$_FILES["file"]["size"] - 被上傳文件的大小,以位元組計

$_FILES["file"]["tmp_name"] - 存儲在伺服器的文件的臨時副本的名稱

$_FILES["file"]["error"] - 由文件上傳導致的錯誤代碼

 

可通過對$_FILES["file"]["type"]或$_FILES["file"]["size"]等對上傳文件進行限制。

上面代碼僅僅上上傳了一個臨時副本,如要保存,則:

 1 if (file_exists("upload/" . $_FILES["file"]["name"]))
 2       {
 3       echo $_FILES["file"]["name"] . " already exists. ";  //若已文件存在則提示
 4       }
 5     else
 6       {
 7       move_uploaded_file($_FILES["file"]["tmp_name"],
 8       "upload/" . $_FILES["file"]["name"]);   //保存文件
 9       echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
10       }

 

(*總結自W3School)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. MyBaits基本概念:略 2. 案例:需求:建立資料庫查詢,一對一 3.開發步驟: (1).建立資料庫+表 (2).加包 (3).定義實體類 (4).編寫db.properties,將資料庫信息寫入其中;編寫MyBatis的配置文件conf.xml文件,引入db.properties;引入別 ...
  • 嗯,這篇講可用的多線程記憶體池。 零、上期彩蛋:不要重載全局new 或許,是一次很不愉快的經歷,所以在會有這麼一個“認識”。反正,大概就是:即使你足夠聰明,也不要自作聰明;在這就是不要重載全局new,無論你有著怎樣的目的和智商。因為: 這是一個不對稱的介面:只告訴了我們如何創建一個【堆】對象,但是釋放 ...
  • 1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 System.out.println("第一個例子"); 6 } 7 } 1 package cn.te... ...
  • Java泛型是JDK1.5加入的新特性。泛型是指參數化的能力。可以定義帶泛型的類型的類或者方法,編譯時期編譯器會用具體的類型來代替它。Java泛型有泛型類、泛型介面和泛型方法。泛型的主要優點是能夠在編譯時期而不是在運行時期就檢測出錯誤。 泛型的出現 在JDK1.5之前,java.lang.Compa ...
  • 引入線程池的原因 通常我們需要使用線程去完成某項任務的時候都會去創建一個線程,一般都會這麼寫: 這樣操作直接且簡單,當然是沒有錯的,但是卻存在這一些問題。在應付一些線程併發不多的情況時是完全夠用的,但是如果併發的線程數量很多,就會造成系統的效率降低。主要會造成如下影響: 頻繁創建和銷毀線程占用大量不 ...
  • 運算符優先順序: siwtch語句註意事項: for迴圈 continue :跳過迴圈體中剩餘的語句執行下一次迴圈 break:退出指定的迴圈,直接執行迴圈後面的代碼 使用Scanner工具類來獲取用戶輸入的信息 示例:接收3個班級各4名學生的成績,計算每個班級的學生的平均分並列印出來。 ...
  • 隱藏細節 現實生活中有很多隱藏細節的案例,比如我們平時用的電腦,當我們按電源按鈕後電腦就自動開始啟動了,對用戶來講很簡單隻需要知道按按鈕就行。但電腦內部的工作原理其實是很複雜的一個流程,這裡不多說。 如果不隱藏細節會怎樣? 我想可能的結果就是電腦只能是特別特別的專業人員才能操作,永遠無法像現在一樣成 ...
  • Hibernate學習筆記1 本筆記學習自 "Hibernate官方文檔" 。 1. Architecture(總體結構) 俗話說有圖有真相,先看一張圖: 上圖清楚地描述了Hibernate在一個Java應用中所處的位置:位於 Data Access Layer(數據訪問層) 和 Relation ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...