PHP รองรับการทำงานของฐานข้อมูลต่าง ๆ และยังมีวิธีดำเนินการมากมายสำหรับการทำงานของไฟล์ การดำเนินการปัจจุบันของเพื่อน ๆ หลายคนยังคงขึ้นอยู่กับการทำงานของไฟล์ แต่บางครั้งก็ยังมีความสับสนและข้อสงสัยมากมายเมื่อใช้งานไฟล์ ดังต่อไปนี้ คือชุดของปัญหาบางอย่างเกี่ยวกับการทำงานของไฟล์ที่ฉันพบในกระบวนการเขียนรายวันและที่เพื่อนของฉันในฟอรัมพบ
ถาม: จะสร้างไฟล์ใหม่ได้อย่างไร?
คำตอบ: 1. ใช้ fopen("ชื่อไฟล์ที่จะสร้าง", "พารามิเตอร์") พารามิเตอร์สามารถเป็น w, w+, a, a+
2. ใช้ exec("echo '' > ชื่อไฟล์ที่จะสร้าง"); นี่คือการใช้วิธีของระบบเพื่อสร้างไฟล์ คุณยังสามารถใช้คำสั่ง touch Linux เพื่อสร้างมันขึ้นมา
ได้ ไฟล์เหรอ?
คำตอบ: 1. หากคุณใช้ fopen เพื่อสร้างไฟล์ คุณใช้พารามิเตอร์อย่างถูกต้องหรือไม่?
2. สำหรับปัญหาการอนุญาตของระบบ โปรดถามเว็บมาสเตอร์ของคุณว่าไดเร็กทอรี FTP ของคุณมีสิทธิ์ในการเขียนหรือไม่
3. ปัญหาการอนุญาต FTP คุณต้องยืนยันว่าไดเร็กทอรีที่ไฟล์ PHP ของคุณถูกเขียนจะต้องมีสิทธิ์ในการเขียน หลังจากเข้าสู่ระบบซอฟต์แวร์ FTP ของคุณแล้ว กลุ่มอื่นจะต้องมีสิทธิ์ในการเขียน
ถ้าไม่ โปรดแก้ไขการอนุญาตแล้วลอง
ถาม: จะอ่านไฟล์ลงในอาร์เรย์ได้อย่างไร
A: ใช้ไฟล์
Q: จะอ่านไฟล์ทั้งหมดได้อย่างไร?
คำตอบ: 1. ใช้ fread($fp);
2. หากเวอร์ชัน PHP ของคุณ >= 4.3.0 คุณสามารถใช้ file_get_contents();
ถาม: จะทราบได้อย่างไรว่ามีไฟล์อยู่หรือไม่?
คำตอบ: ใช้ file_exists(); ทำไมไม่ใช้ fopen() เพื่อตัดสิน? เหตุผลก็คือบางครั้งข้อมูลที่ส่งกลับโดย fopen ทำให้เราตัดสินผิดเนื่องจากปัญหาการอนุญาต
คำถาม: เหตุใดจึงเกิดข้อผิดพลาดเมื่อฉันอ่านหน้าเว็บ
คำตอบ: 1. อาจเป็นไปได้ว่าพารามิเตอร์การส่งข้อมูลของคุณไม่ถูกต้อง เมื่ออ่านเว็บเพจ คุณสามารถใช้โหมด r เพื่ออ่านเพจเท่านั้น
2. ตรวจสอบให้แน่ใจว่าสามารถเข้าถึงหน้าเว็บที่คุณต้องการอ่านได้
คำถาม: ฉันจะรับคุณสมบัติที่เกี่ยวข้องของไฟล์ได้อย่างไร?
คำตอบ: PHP มีชุดวิธีการในการรับคุณสมบัติของไฟล์ เช่น filemtime(), fileowner(), filegroup(), filectime(), fileatime()... โปรดดูคู่มือการใช้งานโดยละเอียด
คำถาม: หลังจากเปิดไฟล์ใน PHP แล้ว ฉันสามารถวางตำแหน่งไฟล์ "เคอร์เซอร์" เช่น C ได้หรือไม่
คำตอบ: ใช่ ใช้ fseek();
คำถาม: ฉันต้องการป้องกันไม่ให้ผู้อื่นเข้าถึงไฟล์เมื่อเข้าถึงไฟล์นั้น ฉันควรทำอย่างไร?
คำตอบ: 1. คุณสามารถใช้ขั้นตอนอื่นเพื่อจำกัดผู้ใช้ไม่ให้เข้าถึงเพจสำหรับการดำเนินการกับไฟล์ได้
2. ใช้ flock(); โปรดดูคู่มือสำหรับพารามิเตอร์โดยละเอียดและวิธีการใช้งาน
คำถาม: จะลบบรรทัดแรกในไฟล์หรือระบุบรรทัดข้อมูลได้อย่างไร
คำตอบ: PHP ไม่มีวิธีดำเนินการดังกล่าว แต่เราสามารถใช้ร่วมกันได้ โค้ดต่อไปนี้แสดงให้เห็นว่าเราจะลบบรรทัดที่สามของข้อมูล (test.datw) ในไฟล์ "test.dat"
มีข้อมูลมากกว่าสามบรรทัดในไฟล์)
<?php
$filename="test.dat"; //กำหนดไฟล์การดำเนินการ
$delline=3; //จำนวนแถวที่ต้องการลบ
ถ้า(!file_exsits($ชื่อไฟล์)){
die("ไม่พบไฟล์ที่ระบุ! การดำเนินการถูกขัดจังหวะ!");
-
$farray=file($filename);//อ่านข้อมูลไฟล์ลงในอาร์เรย์
สำหรับ($tmpa=0;$Tmpa<count($farray);$Tmpa++){
ถ้า(strcmp($Tmpa+1,$delline)==0){
//กำหนดแถวที่ถูกลบ
ดำเนินการต่อ;
-
//จัดเรียงข้อมูลใหม่
$newfp.=$farray[$Tmpa]"rn";
-
$fp=@fopen($filename,"a ") or die("ไม่สามารถเปิดไฟล์ $filename ในโหมดการเขียน");//เราเปิดไฟล์ในโหมดการเขียน
@fputs($fp,$newfp) or die("การเขียนไฟล์ล้มเหลว");
@fclose($fp);
?>
โค้ดข้างต้นแสดงให้เห็นถึงการลบบรรทัดของไฟล์ แต่ถ้าคุณดูดีๆ จริงๆ แล้วมันจะแจ้งเตือนคุณเกี่ยวกับการดำเนินการกับไฟล์อื่นๆ จริงๆ~
คำถาม: เมื่อฉันพยายามเปิดไฟล์ที่ไม่มีอยู่ ฉันจะไม่ยอมให้ เกิดข้อผิดพลาดเพื่อหลีกเลี่ยงไม่ให้เส้นทางของฉันรั่วไหล! -
คำตอบ: เพิ่มสัญลักษณ์ @ หน้าวิธีที่คุณต้องการเปิดไฟล์เพื่อบล็อกข้อผิดพลาด @ เป็นสัญลักษณ์พิเศษที่ PHP เตรียมไว้ให้เพื่อบล็อกข้อความแสดงข้อผิดพลาด หรือคุณสามารถเพิ่ม (โดยปกติจะอยู่ที่ด้านบนของหน้า) error_reporting(0) ไว้ข้างหน้า ขั้นตอนที่คุณต้องการดำเนินการ ); ใช้เพื่อบล็อกการแสดงข้อความแสดงข้อผิดพลาดทั้งหมดบนเพจ วิธีการที่ไม่แนะนำคือการแก้ไข php.ini (ยกเว้น ISP)
ฉันจะป้องกันได้อย่างไร ผู้ใช้รายอื่นจากการขโมยข้อมูลของฉัน?
คำตอบ: ขอแนะนำให้ ISP แก้ไข open_basedir ใน php.ini เพื่อดูข้อจำกัด การตั้งค่า ISP ที่ไม่แนะนำคือเพิ่มการทำงานของไฟล์ เช่น fopen และ file เพื่อปิดการใช้งาน_function
คำถาม: เหตุใดฉันจึงไม่สามารถลบไฟล์เหล่านี้ได้หลังจากที่ฉันใช้ PHP เพื่อลบมันเมื่อฉันเข้าสู่ระบบผ่าน FTP -
คำตอบ: ส่วนใหญ่เป็นเพราะไฟล์ที่สร้างโดย PHP เป็นของกลุ่มผู้ใช้ WEB นั่นคือไฟล์ที่สร้างขึ้นไม่ได้เป็นของผู้ใช้ FTP ของคุณ! - - วิธีแก้ไขปัญหานี้คือการใช้วิธี chmod, unlink ฯลฯ ของโปรแกรม PHP ขอแนะนำให้ผู้ใช้จำสิทธิ์ของไฟล์ chmod เมื่อใช้ PHP เพื่อสร้างไฟล์ คำถาม
: วิธีใช้ไฟล์ข้อความ เป็นคลังข้อมูล? สมุดเยี่ยมชม กระดานสนทนา ฯลฯ ทั้งหมดใช้สิ่งนี้!
คำตอบ: อันที่จริง สิ่งนี้ใช้ไฟล์เป็นหลัก และเป็นตัวอย่างทั่วไปของการอ่านข้อมูลและการแบ่งส่วนรวมกับการระเบิด
ถาม: ฉันจะเปลี่ยนชื่อไฟล์ได้อย่างไร?
คำตอบ: เปลี่ยนชื่อ();
ถาม: จะลบไฟล์ได้อย่างไร?
คำตอบ: unlink(); exec("del(rm -vf) filename"); หมายเหตุ: rm -vf ถูกใช้ภายใต้ Linux
คำถาม: จะล้างไฟล์ได้อย่างไร?
คำตอบ: ใช้ fopen(filename,"w"); หรือ exec("echo '' > filename");
ถาม: จะแก้ไขเนื้อหาไฟล์ได้อย่างไร?
คำตอบ: ฉันจำได้ว่าครั้งหนึ่งฉันเคยตอบคำถามเกี่ยวกับการลบเนื้อหาไฟล์ ที่จริงแล้ว การแก้ไขเนื้อหาจำเป็นต้องมีการทดแทนตัวแปรตามการลบเนื้อหาเท่านั้น ฉันหวังว่าคุณจะสามารถค้นหาและเปลี่ยนแปลงการดำเนินการต่อด้านบนเพื่อแทนที่ข้อมูลตัวแปรได้