Nếu tôi có CSV được lưu trên máy chủ, làm cách nào tôi có thể sử dụng PHP để viết một dòng nhất định, giả sử 142,fred,elephants
ở dưới cùng của nó?Thêm dòng mới vào tệp CSV
Trả lời
Mở tệp CSV cho phụ (fopen
Docs):
$handle = fopen("test.csv", "a");
Sau đó thêm đơn hàng (fputcsv
Docs):
fputcsv($handle, $line); # $line is an array of string values here
Sau đó đóng tay cầm (fclose
Docs):
fclose($handle);
Tôi hy vọng điều này hữu ích.
@fvu: Không thực sự. '+' Không cần thiết, 'a' cũng tạo ra tệp nếu nó không tồn tại. '+' Là để đọc hỗ trợ. Xem * "'a' \t Mở để chỉ viết; đặt con trỏ tập tin vào cuối tập tin. Nếu tập tin không tồn tại, hãy thử tạo nó." * Http://de.php.net/manual/en /function.fopen.php – hakre
@Dale: Không phải như vậy. Thêm một câu cuối cùng tầm thường hơn mà không thể đọc quá sai một cách dễ dàng. Không làm tổn thương bất kỳ cảm xúc nào ở đây. – hakre
Sẽ giúp ích nếu bạn bao gồm '$ line' cần phải là một chuỗi các chuỗi, chứ không phải là dòng thực tế. – Overcode
Bạn có thể sử dụng một định hướng đối tượng lớp giao diện cho một tập tin - SplFileObject http://php.net/manual/en/splfileobject.fputcsv.php (PHP 5> = 5.4.0)
$file = new SplFileObject('file.csv', 'a');
$file->fputcsv(array('aaa', 'bbb', 'ccc', 'dddd'));
$file = null;
Nếu bạn muốn mỗi file được chia nhỏ để giữ lại tiêu đề của bản gốc; đây là phiên bản sửa đổi của câu trả lời hakre của:
$inputFile = './users.csv'; // the source file to split
$outputFile = 'users_split'; // this will be appended with a number and .csv e.g. users_split1.csv
$splitSize = 10; // how many rows per split file you want
$in = fopen($inputFile, 'r');
$headers = fgets($in); // get the headers of the original file for insert into split files
// No need to touch below this line..
$rowCount = 0;
$fileCount = 1;
while (!feof($in)) {
if (($rowCount % $splitSize) == 0) {
if ($rowCount > 0) {
fclose($out);
}
$out = fopen($outputFile . $fileCount++ . '.csv', 'w');
fputcsv($out, explode(',', $headers));
}
$data = fgetcsv($in);
if ($data)
fputcsv($out, $data);
$rowCount++;
}
fclose($out);
Giải pháp này làm việc cho tôi:
<?php
$list = array
(
"Peter,Griffin,Oslo,Norway",
"Glenn,Quagmire,Oslo,Norway",
);
$file = fopen("contacts.csv","w");
foreach ($list as $line)
{
fputcsv($file,explode(',',$line));
}
fclose($file);
?>
Ref: https://www.w3schools.com/php/func_filesystem_fputcsv.asp
- 1. Cách thêm cột mới vào tệp CSV?
- 2. chèn một dòng vào tệp csv
- 3. Android: Cách viết dòng mới trong tệp CSV?
- 4. in một dòng mới trong ô tệp csv
- 5. Thêm dòng dữ liệu mới vào TextBox
- 6. Thêm một dòng mới vào cuối JtextArea
- 7. Thêm một dòng mới vào tập tin?
- 8. Nối vào dòng cuối cùng của tệp CSV trong Java
- 9. Nhập Tệp CSV vào Java
- 10. PHP tạo csv không gửi dòng mới đúng feeds
- 11. Thêm tệp vào redmine qua dòng lệnh
- 12. Thêm dòng mới vào ô excel được tạo qua html
- 13. nhập tệp CSV vào phpmyadmin
- 14. Nối hàng vào tệp csv Ruby 1,9 CSV lib
- 15. Dòng mới Unix vào cửa sổ dòng mới (trên Windows)
- 16. Cách thêm dòng mới vào JLabel với các biến
- 17. Thêm dòng mới vào vòng lặp Makefile 'foreach'
- 18. Làm cách nào để thêm dòng mới vào lỗi flash?
- 19. regex để chia dòng (tệp csv)
- 20. Gắn thêm một dòng mới vào một tập tin (tệp nhật ký) bằng C++
- 21. Thêm một dòng vào đầu tệp văn bản
- 22. cách thêm dòng vào tệp hiện có bằng python
- 23. nội dung tệp vào unix biến với dòng mới
- 24. lxml không thêm dòng mới khi chèn phần tử mới vào xml hiện tại
- 25. Đếm độ dài (số dòng) của tệp CSV?
- 26. Người mới chuyển đổi tệp CSV ở Clojure
- 27. WIX thêm tệp mới vào thành phần được chia sẻ
- 28. OpenXML thêm hàng mới vào tệp Excel hiện có
- 29. Tải lên tệp có cfhttp nối thêm dòng mới (ngay cả trên tệp nhị phân)
- 30. Chèn văn bản nhiều dòng vào trường csv
Đó gọi là * phụ * thấy chế độ khi bạn mở một tập tin, có thường mở để nối thêm với các hàm hệ thống tập tin. – hakre