首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 表單提交資料自動生成 TXT 文字檔完整實作教學

     編輯:PHP 綜合知識

在 PHP 開發中,經常需要將前端表單提交的文字資料,按行拆分後自動生成對應的 TXT 檔案。本文提供一個完整的兩檔案實作範例,包含前端表單頁面與後端處理邏輯,適合初學者快速掌握檔案寫入與編碼轉換的核心技巧。

一、前端表單頁面(dcwz.php)

此頁面包含分類下拉選單、模糊關鍵字輸入框,以及一個可輸入多行標題的文字區域。使用者每行輸入一個標題,送出後將由後端程式逐行建立同名的 TXT 檔案。

<?php error_reporting(0); ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>批量建立 TXT 檔案</title>
<link type="text/css" rel="stylesheet" href="/xwyfb/fb_css.css">
</head>
<body>
<div class="dcwj">
<form id="tjsd" name="tjsd" action="dcwj_cl.php" method="post" onSubmit="return checkForm()">
  <div class="dcwj_div1">
    <p class="dcwj_div1_p1">目前專案分類:</p>
    <p class="dcwj_div1_p2">
      <select name="liebie" id="liebie">
        <?php /* 這裡原本連接資料庫讀取分類,示範用靜態選項 */ ?>
        <option value="1">1=>新聞=>科技</option>
        <option value="2">2=>部落格=>生活</option>
      </select>
    </p>
  </div>
  <div class="dcwj_div1">
    <p class="dcwj_div1_p1">模糊關鍵字:</p>
    <p class="dcwj_div1_p2"><input name="mhgjc" id="mhgjc" value="" type="text"></p>
  </div>
  <div class="dcwj_div2">
    <p class="dcwj_div2_p1">請輸入標題<br>*(一行一個)</p>
    <p class="dcwj_div2_p2"><textarea name="biaoti" id="biaoti" class="dcwj_biaoti" cols="50" rows="10"></textarea></p>
  </div>
  <div class="dcwj_div2"><input name="submit" type="submit" value="提交建立"></div>
</form>
</div>
</body>
</html>

二、後端處理程式(dcwj_cl.php)

後端接收 $_POST['biaoti'],以換行符拆分成陣列,逐行處理:將檔名由 UTF-8 轉為 GBK(避免中文檔名亂碼),在專案根目錄下的 text/ 資料夾建立同名 .txt 檔案,並寫入示範資料。

<?php
// 1. 接收並拆分標題資料
$biaoti_cl = explode("\n", $_POST['biaoti']);
$biaoti_num = count($biaoti_cl);
$file_type = "txt";

// 2. 示範要寫入的資料結構
$data = array(array("tom", "boy", 20));

// 3. 目標資料夾(需先手動建立 text 資料夾並給予寫入權限)
$dir = dirname(__FILE__) . "\\text\\";

for ($i = 0; $i < $biaoti_num; $i++) {
    // 檔名編碼轉換:UTF-8 → GBK
    $file_name = mb_convert_encoding(trim($biaoti_cl[$i]), 'GBK', "UTF-8");
    if (empty($file_name)) continue; // 略過空行

    // 組合寫入字串
    $string = "";
    foreach ($data as $row) {
        foreach ($row as $val) {
            $string .= mb_convert_encoding($val, 'GBK', "UTF-8");
        }
    }
    $string .= "\r\n";

    // 建立完整路徑並寫入
    $filedir = $dir . $file_name . "." . $file_type;
    $fp = fopen($filedir, "a+");
    if ($fp) {
        fwrite($fp, $string);
        fclose($fp);
        echo '成功建立:' . $filedir . '<br>';
    } else {
        echo '建立失敗:' . $filedir . '<br>';
    }
}
?>

三、關鍵點總結

  • 資料夾權限:執行前務必在專案根目錄手動建立 text/ 資料夾,並確保 Web 服務器擁有寫入權限(Linux 下通常設為 755 或 777)。
  • 編碼轉換:Windows 環境下檔名常需由 UTF-8 轉 GBK,Linux 則可直接使用 UTF-8,視部署環境調整。
  • 安全性:實際上線時請加入檔名過濾、長度限制、防止目錄遍歷(../)等防護措施。
  • 資料庫整合:範例中註解掉的分類讀取邏輯,可依專案需求接回 mysqli 或 PDO 實作。

掌握此流程後,即可輕鬆擴充為批量匯出報表、產生靜態頁面、備份使用者輸入等實務應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved