Wie lösche ich eine Zeile aus der Datei mit PHP?

9

Ich habe eine Datei namens $dir und eine Zeichenkette mit dem Namen $line . Ich weiß, dass diese Zeichenkette eine vollständige Zeile dieser Datei ist, aber ich kenne ihre Zeilennummer nicht und möchte sie aus der Datei entfernen soll ich tun?

Ist es möglich, awk zu verwenden?

    
ibrahim 19.04.2011, 07:17
quelle

8 Antworten

7
%Vor%     
Naveed Ahmad 19.04.2011, 07:24
quelle
17

Lesen Sie die Zeilen nacheinander und schreiben Sie alle außer der übereinstimmenden Zeile in eine andere Datei. Ersetzen Sie dann die Originaldatei.

    
Ignacio Vazquez-Abrams 19.04.2011 07:18
quelle
8

Dies wird nur über jede Zeile schauen und wenn es nicht das ist, was Sie löschen wollen, wird es in ein Array geschoben, das in die Datei zurückgeschrieben wird. Sehen Sie das

%Vor%     
Thusitha Sumanadasa 11.06.2013 07:31
quelle
3

Ein anderer Ansatz besteht darin, die Datei Zeile für Zeile zu lesen, bis Sie eine Übereinstimmung gefunden haben, dann die Datei an diesem Punkt abschneiden und dann die restlichen Zeilen anhängen.

    
mpen 19.04.2011 07:20
quelle
1

Das ist auch gut, wenn Sie nach einer Teilzeichenfolge (ID) in einer Zeile suchen und die alte Zeile durch eine neue Zeile ersetzen möchten.

Code:

%Vor%

Beispiel:

Eingabe: "123, Schüler"

Alte Datei:

  

ID, Beruf

     

123, Schüler

     

124, Brick-Layer

Wenn Sie den Code ausführen, ändert sich die Datei in:

Neue Datei:

  

ID, Beruf

     

124, Brick-Layer

    
ChickenFeet 17.02.2017 05:13
quelle
0

So:

%Vor%     
super 20.12.2015 13:08
quelle
0

Ich denke, der beste Weg, mit Dateien zu arbeiten, besteht darin, sie als Zeichenfolgen zu bearbeiten.

Zuerst alle Zeilen der Datei (die folgenden Codes können komprimiert werden):

%Vor%

Hier können Sie Ihre Suche durchführen:

%Vor%

Sie können einfach die Zeile $ key + 1 entfernen:

%Vor%

Zuletzt müssen Sie Ihre Änderungen in der Datei speichern:

%Vor%

Sie können den obigen Code auch als Funktion festlegen.

Hinweise:

  • $ Zeile darf keine neuen Zeilenzeichen wie \ n haben. Sie müssen sie entfernen:

    %Vor%
  • Verwenden Sie nicht

    %Vor%

    statt

    %Vor%

    weil der erste Fall die Zeile nicht entfernt, löscht sie nur die Zeile (und eine unerwünschte leere Zeile bleibt bestehen). In diesem Fall fügt implode () eine neue Zeile für $ fileLineByLine [$ key] hinzu, die leer ist. Andernfalls, wenn Sie eine Variable deaktivieren, ist sie nicht verfügbar (und implode () kann sie nicht finden).

MAChitgarha 19.06.2017 10:03
quelle
0

Es kann ohne die Verwendung von awk gelöst werden:

%Vor%     
Nabi K.A.Z. 09.12.2017 22:37
quelle

Tags und Links