10/10/2018, 10:59

Hỏi về cách ghi dữ liệu vào file trong php

Ví dụ mình có đoạn code sau:

<?php

$path="text.txt";
$file=fopen($path, "w");
$write=fwrite($file,"Hello PHP !");
fclose($file);

?>

Thì sẽ tạo ra 1 file text.txt có nội dung Hello PHP !
Bây giờ mình không muốn ghi tiếp nội dung vào sau Hello PHP ! mà mình muốn xuống dòng mới để ghi tiếp nội dung thì làm như nào vây?
rootkit viết 13:10 ngày 10/10/2018
Xin nhớ cho nguyên tắc sau:
nếu bạn open 1 file bằng fopen tức bạn đang mở file bằng con trỏ file,muốn đọc lấy 1 đoạn dữ liệu tại vị trí bất kỳ nào trong file ,muốn ghi 1 đoạn dữ liệu vào vị trí bất kỳ nào của file ta cần phải dịch chuyển con trỏ file tới vị trí đó rồi mới thao tác đọc và ghi .

mặc định khi ta fopen 1 file thì con trỏ nằm tại đầu dòng 1.

ta có 1 hàm để check xem con trỏ hiện tại có nằm tại vị trí cuối cùng của file hay không ,đó là hàm feof(). sử dụng hàm này trong vòng lập while ta sẽ check được con trỏ có nằm ở vị trí cuối hay không .
while (!feof($file)) {
}

đoạn code của bạn sẽ như sau
<?php
$path="text.txt";
$file=fopen($path, "w");
$write=fwrite($file,"Hello PHP !");
while (!feof($file)) {
$write=fwrite($file,"PHP thật tuyệt vời!!!");
}
fclose($file);
?>
tuanit85 viết 13:13 ngày 10/10/2018
Nhưng ý mình ở đây là ghi thêm một đoạn dữ liệu mới xuống một dòng mới như:

Hello PHP !................................................. ...............
(Dữ liệu mới ghi xuống đay)...........................................
rootkit viết 13:13 ngày 10/10/2018
nếu bạn muốn ghi vào file và bắt con trỏ xuống dòng thì ta thêm ký tự \n vào cuối chuỗi cần ghi .
$write=fwrite($file,"Hello PHP !\n");

ps: làm sao để bật tool sử dụng bbcode vậy ,nhiều quá ai mà nhớ nỗi
mitdacqn viết 13:12 ngày 10/10/2018
Bạn làm thế này nhé:
PHP Code:
<?php
// Ghi lần đầu
$path="text.txt";
$file=fopen($path"w");
$write=fwrite($file,"Hello PHP !\n");
fclose($file);

// Ghi tiếp
$path="text.txt";
$file=fopen($path"a");
$write=fwrite($file,"Hello PHP Again!\n");
fclose($file);

?>
hoanghai27 viết 13:00 ngày 10/10/2018
Được gửi bởi rootkit
nếu bạn muốn ghi vào file và bắt con trỏ xuống dòng thì ta thêm ký tự \n vào cuối chuỗi cần ghi .
$write=fwrite($file,"Hello PHP !\n");

ps: làm sao để bật tool sử dụng bbcode vậy ,nhiều quá ai mà nhớ nỗi
Ở trong tùy chọn cá nhân của 4rum có chỗ chọn đấy (gẫn ở cuối cùng đó)

Mình cũng có một câu hỏi về ghi file nè: Có những host nó chỉ cho ghi file ở cùng một thư mục với file đó còn các file ở thư mục khác thì ghi không được (đã CHMOD 777).Vậy phải làm sao để ghi file đó đây?
rootkit viết 13:10 ngày 10/10/2018
Được gửi bởi mitdacqn
Bạn làm thế này nhé:
PHP Code:
<?php
// Ghi lần đầu
$path="text.txt";
$file=fopen($path"w");
$write=fwrite($file,"Hello PHP !\n");
fclose($file);

// Ghi tiếp
$path="text.txt";
$file=fopen($path"a");
$write=fwrite($file,"Hello PHP Again!\n");
fclose($file);

?>
làm như bạn không ổn đâu ,chẳng ai làm thế cả ,bạn cứ tưởng tượng bạn mở 1 cái hộp để bỏ vào 1 viên bi ,rồi đóng hộp lại ,rồi mở hộp đó tiếp để bỏ 1 viên bi tiếp ,rồi đóng hộp lại => bỏ 1000 viên bi chắc tui khùng luôn quá

[=========> Bổ sung bài viết <=========]

Được gửi bởi hoanghai27
Ở trong tùy chọn cá nhân của 4rum có chỗ chọn đấy (gẫn ở cuối cùng đó)

Mình cũng có một câu hỏi về ghi file nè: Có những host nó chỉ cho ghi file ở cùng một thư mục với file đó còn các file ở thư mục khác thì ghi không được (đã CHMOD 777).Vậy phải làm sao để ghi file đó đây?
-ý mình là bật cái tool giao diện đồ họa bbcode giống như fckedit chẳng hạn

-CHMOD là khái niệm cho host Linux ,còn host Windows là Change Permission ,nếu sài host Windows mà dùng ftpcute để CHMOD "thì mèo lại hoàn mèo"(không tin cứ thử đi) ,do đó hãy sử dụng Control Panel của host để
Change Permission .

-Còn host Linux thì ok ,CHMOD sẽ gán quyền sử dụng file và folder cho ba đối tượng sau :owner ,group của owner đó ,everyone.

vd : 777 có nghĩa là owner=7,group của owner đó=7,everyone=7
bạn set everyone=7 thì site của bạn chắc chắn sẽ die sớm ,everyone=5 là trường hợp hay dùng cho những thư mục chứa file upload.

-Nếu bạn nắm rõ tại sao là 777 ,775 ,755,753,751 thì bạn sẽ bảo mật tốt hơn.
mitdacqn viết 13:02 ngày 10/10/2018
Được gửi bởi rootkit
làm như bạn không ổn đâu ,chẳng ai làm thế cả ,bạn cứ tưởng tượng bạn mở 1 cái hộp để bỏ vào 1 viên bi ,rồi đóng hộp lại ,rồi mở hộp đó tiếp để bỏ 1 viên bi tiếp ,rồi đóng hộp lại => bỏ 1000 viên bi chắc tui khùng luôn quá
ý mình là file đó đã được ghi rồi, lần sau bạn muốn ghi tiếp thì làm như thế, chứ mình có nói là có 1000 dòng thì làm như thế 1000 lần đâu
rootkit viết 13:09 ngày 10/10/2018
Được gửi bởi mitdacqn
ý mình là file đó đã được ghi rồi, lần sau bạn muốn ghi tiếp thì làm như thế, chứ mình có nói là có 1000 dòng thì làm như thế 1000 lần đâu
bạn viết code 1 đường ,ý 1 nẻo thì làm sao tôi hiểu đây .
khangythien viết 13:15 ngày 10/10/2018
Mình có link cho bạn tham khảo nè: vào xem thử coi có được không:
http://aweb.vn/xem-thiet-ke-web/55.G...-vao-File.html

[=========> Bổ sung bài viết <=========]

Link nè bạn: http://aweb.vn/xem-thiet-ke-web/55.G...-vao-File.html
Bài liên quan
0