|
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 |
|
|
|