Verschmelzung fand ich diesen Code auf Stackoverflow, von Benutzer @Attgun:php txt-Dateien, die Ausgabe mit Codierung
Link: merge all files in directory to one text file
<?php
//Name of the directory containing all files to merge
$Dir = "directory";
//Name of the output file
$OutputFile = "filename.txt";
//Scan the files in the directory into an array
$Files = scandir ($Dir);
//Create a stream to the output file
$Open = fopen ($OutputFile, "w"); //Use "w" to start a new output file from
zero. If you want to increment an existing file, use "a".
//Loop through the files, read their content into a string variable and
write it to the file stream. Then, clean the variable.
foreach ($Files as $k => $v) {
if ($v != "." AND $v != "..") {
$Data = file_get_contents ($Dir."/".$v);
fwrite ($Open, $Data);
}
unset ($Data);
}
//Close the file stream
fclose ($Open);
?>
Der Code funktioniert richtig, aber wenn es verschmilzt, PHP fügt ein Zeichen am Anfang jeder kopierten Datei. Die Dateicodierung, die ich verwende, ist UCS-2 LE. Ich kann dieses Zeichen anzeigen, wenn ich die Codierung zu ANSI ändere.
Mein Problem ist, dass ich keine andere Codierung als UCS-2 LE verwenden kann.
Kann mir jemand bei diesem Problem helfen?
Edit: Ich möchte die Dateicodierung nicht ändern. Ich möchte die gleiche Codierung ohne PHP ein weiteres Zeichen hinzufügen.
Wie wäre es nur mit 'cat/pfad/zu/dir/*> dateiname.txt' in bash? –
Sam Onela, kein Kumpel, ist nicht doppelt, weil ich hier die aktuelle Kodierung behalten möchte (UCS-2 LE). – MimisK
Diese Zeichen sind wahrscheinlich die Unicode-Stückliste (Byte Order Marker). Entferne sie nur aus allen Dateien, außer aus der ersten. –