Danke, da schaue ich mal nach.
							
						
					Problem mit Zeile ändern in .txt
				
					Collapse
				
			
		
	X
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Ich bin leider nicht so erfolgreich gewesen:
 Alle Zeilen heißen plötzlich so, wie die neue Zeile,
 die eingefügt werden soll:
 
 PHP Code://Neue Zeile
 $new_row = "$id|$data1|$data2|$data3|$data4#newline \n";
 
 $oldfile = $file;
 
 // Shared lock auf die Quelldatei
 $old = fopen($oldfile, "r");
 flock($old, 1) or die("Kann die Quelldatei $oldfile nicht locken.");
 
 // Exclusive lock auf die Zieldatei
 $new = fopen($oldfile.".new", "w");
 flock($new, 2) or die("Kann die Zieldatei $newfile nicht locken.");
 
 while(!feof($old))
 {
 $lines = explode("#newline \n", fgets($old, 1024));
 foreach($lines as $line)
 {
 $arr = explode("|", $line);
 
 if($arr[0] == $_POST["id"])
 continue; // Zeile auslassen
 
 fputs($new,$new_row);
 }
 }
 
 fclose($old); // Gibt das Lock automatisch auf
 
 // Alte Datei wegwerfen.
 unlink($oldfile);
 
 // Neue Datei umbenennen.
 // (In Windows müssen das rename() und das fclose($new)
 // vertauscht werden, da es nicht möglich ist, in Windows
 // eine offene Datei umzubenennen.
 rename($oldfile.".new", $oldfile);
 
 // Neue Datei schließen und dabei Lock aufgeben.
 fclose($new);
 
 echo "Der Eintrag mit der ID ".$_POST["id"]." ist erfolgreich geändert
 worden :)
 <br><br><input type=\"button\" onClick=\"window.location.href='?validCode=$validCode'\"
 value=\"zurück\">";
 Last edited by kerbstone; 02-05-2007, 19:56.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Wenn manche Frager sich beim "programmieren" nicht mal halbwegs "intelligenzorientiert" verhalten können ...Original geschrieben von kerbstone
 Schade, dass dieses Forum nun auch nur noch kommerzorientiert ist, echt schade   I don't believe in rebirth. Actually, I never did in my whole lives. I don't believe in rebirth. Actually, I never did in my whole lives.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Von denen die hier posten verdient daran wohl keiner was ...Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Gut, dann setze ich jetzt mal anders an und
 versuche meinen Verstand zu benutzen:
 
 Ich habe ja die Möglichkeit eine Textdatei
 komplett mittles read() auszulesen.
 Angenommen ich bekomme eine ID
 über $HTTP_GET_VARS kann ich dann
 mittels javascript oder ähnlichem sagen,
 scrolle zu zeile x wo x gleich x ist?
 Vom Prinzip her soll es wie ein Anker sein
 wie in HTML <a name="x">x</a>.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 $_GET !$HTTP_GET_VARSAlso doch nicht mehr PHP sondern Javascript? Nimmst du file, packst das in eine Schleife und gibts in jeder Zeile sowas wie '<a name="' . $i . '">' . $fileArray [ $i ] . '</a>. Den Rest machst du jetzt mal selber.mittels javascript oder ähnlichem sagen,
 scrolle zu zeile x wo x gleich x ist?Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 überlege noch mal: wenn der benutzer auf einen link klickt, sendet der browser die anfrage an den server. und nun bekommt dein script: foo.php?zeile=42.Vom Prinzip her soll es wie ein Anker sein wie in HTML <a name="x">x</a>.
 
 was soll er jetzt machen - ein ganzes dokument zurückgeben? oder nur einen teil? oder alles schön mit html verpacken? (dann ließe sich mit js irgendwohin vorscrollen).
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Das Error Reporting voll aufgedreht ? Kennst du file() --> liest eine Datei komplett Zeile für Zeile ein und gibt ein Array zurück, wo jedes Element einer Zeile der Datei entspricht. Dieses Array mittels foreach durchlaufen. Wieso überhaupt exploden ? Du willst ja jene Zeile ersetzen, die der übergebenen id entspricht. Also ich würde da bei jeder Zeile einfach die ersten Zeichen (Zahlen) anschauen und mit deine ID vergleichen.
 Und was du mit dem willst erklär mir bitte mal
 Für mich heisst nähmlich, dass alle Zeilen ersetzt werden sollen, die NICHT in der ID übereinstimmen --> vermute das ist nicht das was du willst...PHP Code:if($arr[0] == $_POST["id"]) continue;
 fputs($new,$new_row);
 
 
 Gruss
 
 tobiGutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten
 
 [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
 Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
 Comment
 
          

Comment