สร้างไฟล์ Gen PHP File อย่างง่าย
![]() |
สร้างไฟล์ Gen PHP File อย่างง่าย |
ภายในสคริบตัวนี้ ใช้ function fopen() fwrite() fclose() เท่านั้นเองครับ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP - Create</title>
</head>
<body>
<?php
if (isset($_POST['sub'])) {
$txtName = $_POST['nameFile'];
$txtCode = $_POST['txtcode'];
$folder = 'phpcode';
if ( ($txtCode !='') && ($txtName!='') ) {
if(!is_dir($folder)){
mkdir($folder);
}
$namefile = str_replace('.php', '', $txtName);
$myfile = fopen($folder.'/'.$namefile.'.php', "w") or die("Unable to open file!");
fwrite($myfile, $txtCode);
fclose($myfile);
echo 'ok';
}
}
?>
<form method="POST">
<input type="text" name="nameFile" id="txt"><br>
<textarea name="txtcode" id="" cols="30" rows="10"></textarea><br>
<input type="submit" value="Gen PHP" name="sub"><br>
</form>
</body>
</html>
อธิบาย code ข้างต้น
บรรทัดที่ 1-7 คงไม่ต้องอธิบายมั้งครับ ฮ่าๆ เป็น tag html เบื้องต้นที่ต้องมีครับ ผมแนะนำนะครับสำหรับใครที่ใช้ sublime และติดตั้ง package Emmet ให้คีย์ลัดในการสร้าง tag HTML เบื้องต้น เพียงพิมพ์ ! แล้วกด Tab เท่านั้นครับ ไม่ต้องพิมพ์ให้เมื่อย
บรรทัดที่ 9 ผมจะเช็คค่าการทำงานของเจ้า $_POST ตามชื่อ tag INPUT นั้นๆครับ ซึ่ง Form ตัวนี้ ผมตั้ง Method เป็น POST ไว้ครับเลยต้องเช็คว่า isset($_POST) ครับผม ใครที่ใช้ Method แบบ GET ไว้ก็เช็คค่า $_GET ได้เลยครับ ถ้ามีการกด Submit แล้ว สคริบในบรรทัด 11-27 ก็ทำงานต่อไปครับ
บรรทัดที่ 11-13 ผมจะทำการแทนค่าที่รับจาก Form ครับ ซึ่งต้องกำหนดตัวแปรไว้ การกำหนดอย่างนี้จะสะดวกเมื่อว่าเราติส อยากเปลี่ยนชื่อ input หรือเปลี่ยน name="xxx" เป็นอย่างอื่น ก็กลับมาแก้ที่นี่ได้ง่ายไม่ต้องตามแก้หลายที่ บรรทัด 13 ผมตั้งชื่อโฟลเดอร์ไว้เป็น phpcode ครับ สามารถแก้เป็นอย่างอื่นได้ แก้ที่นี่ที่เดียว ไม่ต้องไล่แก้กันภายใน ง่ายไหมละครับ ถ้าไปยัดชื่อโฟลเดอร์ไว้ตามจุดต่างๆ ต้องไล่หากันเยอะเลย
บรรทัดที่ 15 ผมก็ทำการเช็คค่า ช่อง code และช่องชื่อไฟล์ ว่าจะต้องมีค่าครับ ปล่อยว่างไม่ได้ ซึ่งจะเช็คด้วยค่า ตัวแปรที่กำหนดไว้ที่บรรทัด 11-13 ครับ ซึ่งทั้งสองค่าที่ผมเช็คนี้สำคัญทั้งสองค่าครับ
บรรทัดที่ 17-19 ผมเช็คดูว่ามีโหลเดอร์ที่ ชื่อ $folder หรือยัง ซึ่งใช้คำสั่ง is_dir() แต่ผมใส่ !(ไม่) ไว้ด้านหน้า คือ ยังไม่มีโฟล์เดอร์ตัวนี้ใช่ไหม ถ้ายังให้สร้างโฟล์เดอร์ mkdir(); ครับ ถ้ามีแล้วมันจะไม่สร้างโฟล์เดอร์ หรือ mkdir(); ไม่ทำงานเท่านั้นเองครับ
บรรทัดที่ 21 เจ้าบรรทัดนี้เป็นการเช็คชื่อไฟล์เท่านั้นเองครับ ผมกลัวว่าบางครั้งผมลืมใส่นามสกุลไฟล์ ที่ช่องใส่ชื่อไฟล์ บางครั้งใส่ xxx.php บางครั้ง xxx เลย ก็เลยตัดปัญหาให้มัน ค้นหา และแทนที่ ซะเลย โดยใช้ function str_replace('ค้นหา','แทนที่','ข้อความ') ครับ
บรรทัดที่ 23-25 มาถึงการสั่งให้มันเขียนไฟล์ให้เราแล้วครับ ผมเปิดไฟล์ก่อนโดยใช้คำสั่ง fopen('ชื่อไฟล์','โหมดการทำงาน') ชื่อไฟล์ผมก็ระบุตำแหน่ง path หรือตำแหน่งโฟลเดอร์อย่างถูกต้อง อย่าลืม / นะครับ และโหมด ผมจะใช้ w ครับ ซึ่งเป็นโหมดเขียนอย่างเดียว และลบข้อมูลเก่าทิ้งครับ กรณีมีไฟล์เดิมอยู่นะครับ โหมดอื่นๆมีดังนี้
- r อ่านอย่างเดียว เริ่มต้นที่ต้นไฟล์
- r+ อ่านและเขียน เริ่มต้นที่ต้นไฟล์
- w เขียนอย่างเดียว โดยเปิดขึ้นมาแล้วลบข้อมูลเก่าทิ้ง ถ้าไม่มีไฟล์จะสร้างไฟล์
- w+ อ่านและเขียน โดยเปิดขึ้นมาแล้วลบข้อมูลเก่าทิ้ง ถ้าไม่มีไฟล์จะสร้างไฟล์
- a เขียนต่อท้าย โดยเปิดขึ้นมาแล้วเขียนต่อท้ายไฟล์ ถ้าไม่มีไฟล์จะสร้างไฟล์
- a+ อ่านและเขียนต่อท้าย โดยเปิดขึ้นมาแล้วเขียนต่อท้ายไฟล์ ถ้าไม่มีไฟล์จะสร้างไฟล์
- x เขียนอย่างเดียว โดยสร้างไฟล์ใหม่ ถ้ามีไฟล์แล้วจะ return error
- x+ อ่านและเขียน โดยสร้างไฟล์ใหม่ ถ้ามีไฟล์แล้วจะ return error
credit :computer.todaygoods.com
หลังจากนั้น ใช้ function fwrite() ในการเขียนไฟล์ลงไปครับ และปิดไฟล์ด้วย fclose() ครับ เรียบร้อยเลย
บรรทัดที่ 33-37 เป็น Form ครับ ที่มี Method แบบ POST ครับ จะสำคัญเมื่อการเช็คค่าครับ ซึ่งตัวนี้ผมรับค่าแบบ POST ไว้ครับ input และ textarea ตั้งชื่อ name ให้ตรงกันเท่านั้นพอครับผม ต้องตรงกับข้อมูลบรรทัดที่ 11-13 ครับ
เพียงเท่านี้ เราก็ได้สคริบ สร้างไฟล์ Gen PHP File อย่างง่าย แล้วครับ
![]() |
สร้างไฟล์ Gen PHP File อย่างง่าย |