Heim > Artikel > Backend-Entwicklung > php Ich habe fwrite() verwendet, um eine Datei zu schreiben. Warum hat sich der Inhalt der Datei vollständig geändert?
Ich habe fwrite() zum Schreiben einer Datei verwendet. Warum hat sich der Dateiinhalt vollständig geändert?
Der ursprüngliche Inhalt der Datei 2.txt war
<code>★★★★★★★★★★★★</code>
Dann habe ich das folgende Skript ausgeführt:
<code>$res = fopen( "R:/2.txt" ,"r+" ); fwrite( $res , "r" ); fclose( $res );</code>
Das Ergebnis 2.txt wurde:
<code>r铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩?</code>
Entschuldigung, was ist los? Wie kann ich das beheben?
Ich habe fwrite() zum Schreiben einer Datei verwendet. Warum hat sich der Dateiinhalt vollständig geändert?
Der ursprüngliche Inhalt der Datei 2.txt war
<code>★★★★★★★★★★★★</code>
Dann habe ich das folgende Skript ausgeführt:
<code>$res = fopen( "R:/2.txt" ,"r+" ); fwrite( $res , "r" ); fclose( $res );</code>
Das Ergebnis 2.txt wurde:
<code>r铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩?</code>
Entschuldigung, was ist los? Wie kann ich das beheben?
Da dieses Pentagramm mehr als ein Byte pro Zeichen belegt, haben Sie r geschrieben, um das erste Byte abzudecken, wodurch alle nachfolgenden Zeichen zerstört werden, da die verbleibenden Bytes des ersten Zeichens und des zweiten Zeichens Das erste Byte von kann geschrieben werden in eine gültige Kodierung umgewandelt.
Wenn Sie die Datei kürzen möchten, sollten Sie nach dem Schreiben ftruncate ausführen.
Möchten Sie Inhalte hinzufügen?
http://php.net/manual/en/func...
Wenn a als fopen-Öffnungsmethode ausgewählt wird, wird es angehängt.
Keine Änderung nötig, ja, es ist nur so, dass der Redakteur fälschlicherweise die Kodierung des Dokuments erkannt hat. . .