WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » bestimmte zeilen aus einer datei löschen » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Ori
Baldur schrieb am 26.12.2011 22:56
explode bei dem entsprechendem Zeichen.
Dann nur array[0] verwenden.
Dann ist der Rest auch weg.


Er bezieht sich auf das Innere der while-Schleife. Wenn das Semikolon gefunden wird, verschwindet dann auch der Zeilenumbruch. Der muss natürlich wieder ergänzt werden.
von Baldur
explode bei dem entsprechendem Zeichen.
Dann nur array[0] verwenden.
Dann ist der Rest auch weg.

Baldur
von Ori
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
$e = fopen('eingabe.txt', 'r');
$a = fopen('ausgabe.txt', 'w');

$zeile = fgets($e);
while ($zeile !== false) {
  $posi = strpos($zeile, ';');
  if ($posi !== false) {
    $zeile = substr($zeile, 0, $posi) . PHP_EOL;
  }
  fwrite($a, $zeile);
}

fclose($e);
fclose($a);
fopen fgets strpos substr PHP_EOL fwrite fclose

Ungetestet; sollte so gehen. Die Zeilenenden werden bei gefundenem Semikolon abgesäbelt und müssen wieder ergänzt werden. Sauberer wäre es natürlich, den entsprechenden Zeilenumbruch auszulesen und dann wiederzuverwenden, anstatt einfach die plattformabhängige Standardvariante zu nehmen. Du musst dann PHP_EOL durch $umbruch ersetzen und das hier an den Anfang des if-Blocks schreiben:
1:
$umbruch = substr($zeile, strcspn($zeile, "\r\n"))
strcspn

Auch ungetestet.
von der-bernie
Hey, ich bin ein absoluter PHP-Anfänger.

Wie kann ich das Script so umwandeln, dass nach einem bestimmten Zeichen gesucht wird, egal wo es steht, und dahinter alles gelöscht wird, was sonst noch in der selben Zeile steht?

Denn ich habe eine text-datei, die sieht so aus:
blah ; usw...
irgendwas; qwertz...

Ich will alles, was hinter dem Zeichen ";" steht, löschen. Und das in jeder Zeile.

Herzlichen dank und schöne Feiertage!
von Can
Datei in Array einlesen:

1:
$lines=file("datei.txt");


Jetzt Array in Schleife durchlaufen, dabei die Zeilen in Datei zurückkopieren, die nicht gelöscht werden sollen:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:
$file=fopen("datei.txt","w");
$begin="a";

for ($i=0;$i<count($lines);$i++)
  if (substr(strtolower($lines[$i]),0,count($begin))!=strtolower($begin))
    fputs($file,$lines[$i]);

fclose($file);


Jetzt werden alle Zeilen, die mit "a" beginnen, gelöscht.

Can

Nach oben