Jeśli mam plik CSV zapisany na serwerze, jak mogę użyć PHP do napisania danej linii, na przykład 142,fred,elephants
?Dodaj nową linię do pliku CSV
Odpowiedz
Otwórz plik CSV do dopisywania (fopen
Docs):
$handle = fopen("test.csv", "a");
Następnie dodać linię (fputcsv
Docs):
fputcsv($handle, $line); # $line is an array of string values here
następnie zamknij uchwyt (fclose
Docs):
fclose($handle);
Mam nadzieję, że to będzie pomocne.
@fvu: Niezupełnie. '+' Nie jest konieczne, samo 'a' tworzy plik, jeśli nie istnieje. '+' Służy do czytania wsparcia. Zobacz * "'a' \t Otwórz tylko do zapisu, umieść wskaźnik pliku na końcu pliku .Jeśli plik nie istnieje, spróbuj go utworzyć." * Http://de.php.net/manual/en /function.fopen.php – hakre
@Dale: To nie było tak. Dodano bardziej trywialne zdanie końcowe, które nie może być odczytane zbyt źle, że łatwo. Nie urazić tutaj żadnych uczuć. – hakre
Pomogłoby, gdybyś zawarł, że '$ line' musi być tablicą łańcuchów, a nie samą linią. – Overcode
Można używać obiektowego interfejsu klasy dla pliku - 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;
Jeśli chcesz każdy plik podziału, aby zachować nagłówki oryginału; jest to zmodyfikowana wersja odpowiedzi hakre za:
$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);
Rozwiązanie to działa na mnie:
<?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. Dodaj nową linię do pliku tekstowego w Spark
- 2. Dodaj nową linię do VBA/VB6
- 3. Android: Jak napisać nową linię w pliku CSV?
- 4. Dodaj nową linię w pętli Makefile 'foreach'
- 5. Dodaj nową linię w określonej pozycji w pliku tekstowym.
- 6. Dodaj nową linię na końcu JtextArea
- 7. najbardziej skondensowane/najkrótsza droga, aby dołączyć nową linię do pliku
- 8. Dodaj nagłówek do CSV bez ładowania CSV
- 9. pisząc nową linię do pliku tekstowego w Matlab
- 10. Dodaj nową aktywność do AndroidManifest?
- 11. Wstaw nową linię do podpowiedzi bash
- 12. Włóż nową linię do łańcucha javascript
- 13. dodać nową linię do svg, błąd nie może zobaczyć linii
- 14. Migradoc Dodaj linię poziomą
- 15. ggplot2: dodaj linię do średniej w grupie
- 16. Dodaj linię trendu exp/power do ggplot
- 17. Typeahead dodaj niestandardową linię do końca sugestii
- 18. log4net jak umieścić nową linię po stopce
- 19. Node.js console.log - Czy można zaktualizować linię, zamiast tworzyć nową linię?
- 20. Jak usunąć bieżącą linię i dodać nową linię w Notepad ++?
- 21. Dodaj nową akcję na trasie
- 22. Python - jak odczytać/parsować CSV jak linię?
- 23. Jak dodać nową linię za pomocą printf?
- 24. Java Regex wprowadza nową linię w dopasowaniu
- 25. Dodaj pojedynczą linię na histogramie
- 26. Dołącz nagłówek do pliku CSV?
- 27. Ładowanie pliku csv do jQuery?
- 28. Importowanie pliku CSV do Java
- 29. Przesyłanie pliku CSV do shinyApps.io
- 30. C++ Usuń nową linię z ciągu wieloliniowego
To się nazywa * dołączanie * patrz tryb, gdy użytkownik otworzy plik istnieje często jest otwarty na dołączanie funkcji systemu plików. – hakre