ไม่มีโหมดเปิดไฟล์ดังกล่าวเป็น "wr" ในรหัสของคุณ:
fopen("logs.txt", "wr")
โหมดเปิดไฟล์ใน PHP http://php.net/manual/en/function.fopen.phpเหมือนกับใน C: http://www.cplusplus.com/reference/cstdio/fopen/
มีโหมดเปิดหลักต่อไปนี้ "r" สำหรับการอ่าน "w" สำหรับการเขียนและ "a" สำหรับการต่อท้ายและคุณไม่สามารถรวมได้ คุณสามารถเพิ่มตัวดัดแปลงอื่น ๆ เช่น "+" สำหรับการอัปเดต "b" สำหรับไบนารี มาตรฐาน C ใหม่จะเพิ่ม subspecifier มาตรฐานใหม่ ("x") ซึ่งรองรับโดย PHP ซึ่งสามารถผนวกเข้ากับตัวระบุ "w" ใด ๆ (ในรูปแบบ "wx", "wbx", "w + x" หรือ "w + bx" "/" wb + x ") ตัวระบุย่อยนี้บังคับให้ฟังก์ชันล้มเหลวหากไฟล์มีอยู่แทนที่จะเขียนทับมัน
นอกจากนั้นใน PHP 5.2.6 มีการเพิ่มโหมดเปิดหลัก 'c' คุณไม่สามารถรวม 'c' กับ 'a', 'r', 'w' ปุ่ม 'c' เปิดไฟล์สำหรับการเขียนเท่านั้น หากไฟล์ไม่มีอยู่ไฟล์จะถูกสร้างขึ้น หากมีอยู่จะไม่มีการตัดทอน (ต่างจาก 'w') และการเรียกใช้ฟังก์ชันนี้จะล้มเหลว (เช่นในกรณีที่มี 'x') 'c +' เปิดไฟล์เพื่ออ่านและเขียน; มิฉะนั้นจะมีพฤติกรรมเช่นเดียวกับ 'c'
นอกจากนี้และใน PHP 7.1.2 มีการเพิ่มตัวเลือก 'e' ที่สามารถใช้ร่วมกับโหมดอื่นได้ มันตั้งค่าสถานะ close-on-exec บน file descriptor ที่เปิด มีเฉพาะใน PHP ที่คอมไพล์แล้วบน POSIX.1-2008 ระบบที่เข้ากันได้
ดังนั้นสำหรับงานตามที่คุณได้อธิบายไว้โหมดการเปิดไฟล์ที่ดีที่สุดจะเป็น 'a' มันเปิดไฟล์สำหรับการเขียนเท่านั้น มันวางตัวชี้ไฟล์ในตอนท้ายของไฟล์ หากไฟล์ไม่มีอยู่ไฟล์จะพยายามสร้างขึ้น ในโหมดนี้ fseek () ไม่มีผลกระทบการเขียนจะถูกต่อท้ายเสมอ
นี่คือสิ่งที่คุณต้องการตามที่ได้กล่าวไว้แล้วข้างต้น:
fopen("logs.txt", "a")