textdatei per textfeld bearbeiten

raphael1995

Mitglied
hallo
ich hab da n kleines progg...
es soll ne textdatei in ein textfeld eingelesen werden sodass man es beliebig bearbeiten kann und wenn man fertig ist einfach auf "save" drücken und es wird in die textdatei gespeichert...
mein problem ist dass ich das einlesen ins textfeld nicht hinkriege bei mir ist das textfeld immer leer und die textdatei wird schön unter dem textfeld als eigenständiger text ausgegeben...
hätte da einer ne idee wie ich das mit php machen könnte?

mfg und vielen dank im voraus

raphael
 
Grüße,

also ne Idee hab ich schon - aber wie sieht es denn mit deinem bisherigen Code aus?
Wenn du uns hier nen kleinen Ausschnitt gibst, dann können wir darauf aufbauen.
 
Code:
<input type="text">
<?php 
$file = file("Text.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

for ($i = 0; $i < count($file); $i = $i + 2){
   
    echo '<p href="' .$file[$i] .'">' .$file[$i+1] .'</p>';
    echo '</br>';
    
}
?>
</input>
das war der letzte versuch also mit nem <input> feld und in da soll die textdatei zeile für zeile reingelesen werden damit ich sie beliebig bearbeiten kann...
ich weiß der versuch oben ist unsinnig ;) ich glaub da brauch ich iwas mit GET,POST oder?

grüße
 
So,

ich war mal so frei und hab mein eigenes kleines Werk zum Thema verfasst - soll nur als kleines Beispiel dienen:

PHP:
<?php
# File, um das es geht
$file = "test.txt";

if(isset($_POST['save'])) {
	# File leeren, damit neuer Content geschrieben werden kann
	$fileHandler = fopen($file, "wb");
		# Probleme beim Öffnen?
		if(!$fileHandler) {
			echo"Datei konnte nicht geöffnet werden!";	
		}
	$update = fwrite($fileHandler, htmlspecialchars($_POST['fileContent']));
		# Schreibfehler?
		if(!$update) {
			echo"Es ist ein Fehler beim Schreiben aufgetreten!";	
		} else {
			echo"Datei wurde erfolgreich überschrieben";	
		}
	fclose($fileHandler);
	
} else {
	# existiert die Datei überhaupt?
	if(file_exists($file)) {	
		# File im Lesemodus öffnen
		$fileHandler = fopen($file, "rb");
			# Probleme beim Öffnen?
			if(!$fileHandler) {
				echo"Datei konnte nicht geöffnet werden!";	
			}
			
		$content = fread($fileHandler, filesize($file));
			# Lesefehler?
			if(!$content) {
				echo"Es ist ein Fehler beim Einlesen der Datei aufgetreten!";	
			}
		fclose($fileHandler);	
	} else {
		echo"File existiert nicht!";
		exit;	
	}
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test</title>
</head>

<body>


<form action='<?php $_SERVER['PHP_SELF'] ?>' method='POST'>
<textarea cols='50' rows='15' name='fileContent'>
<?php
if(isset($content)) {
	echo"".$content."";	
} else {
	echo"".$_POST['fileContent']."";	
}
?>
</textarea>
<br>
<input type='submit' name='save' value='Speichern'>
</form>


</body>
</html>

Ist zumindest das, was auf die Schnelle machbar war, also bitte nicht schlagen, wenn es nicht so dolle ist^^.

Viel Spaß damit.
 
danke für eure antworten...
besonderen dank an alex_T :) geht perfekt aber trotzdem noch ne frage(ja ich weiß ich nerve ;) )
<p> hab ich komplett weg ich hab jetzt n bisschen anders:
Code:
<?php 
$file = file("blabla.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
   echo '<input type="textarea" value="'.$file.'">';
?>

es müsste doch irgwie so möglich sein, die ganze $file in das texarea zu packen...
wisst ihr wie?
 
Grüße,

ich muss das nochmal eben klar stellen...timestamp sprach in seinem Post weiter oben von einer "Textarea" -> dieser ist jedoch kein zulässiger Type des input-Tags. Vielmehr ist es ein eigenes Tag:

HTML:
<textarea cols='50' rows='20'>hier kann der Content rein</textarea>

'cols' geben dabei die Spalten an, also wieviele Zeichen auf eine Zeile passen. Die 'rows' geben die Zeilen an, die zur Verfügung stehen (und damit natürlich auch die Höhe des Feldes).

Also sowas hier:
HTML:
<input type="textarea"...>
Ganz schnell vergessen ;)


So nun zu deinem eigentlichen Problem zurück.

Wenn du etwas mit 'file' einließt, dann wird das Ganze in ein Array gepackt ,und um das auszulesen, musst du es auch wie eins behandeln.
Dabei hast du mehrere Möglichkeiten:

1.) print_r($deinArrayHier);
-> in deinem Falle aber eher ungeeignet, da es zusätzlich zu den Werten auch die entsprechenden Schlüssel mit ausgibt.

2.) eine foreach-Schleife
Mit einem solchen Konstukt kann ein Array durchlaufen und dessen Werte ausgelesen werden - im Prinzip genau das, was du für dein Problem brauchst.

PHP:
# der Baustein, den du brauchst
foreach($file as $content) {
      echo"".$content."";
}

weitere Infos zu 'foreach'

Zusammenfassung:
Das eben geschriebene mit dem weiter oben Erwähnten kombiniert, sollte die Lösung für dein Problem sein!

PHP:
$file = file("blabla.txt", FILE_SKIP_EMPTY_LINES);

echo"<textarea cols='50' rows='20'>";
foreach($file as $content) {
	echo"".$content."";	
}
echo"</textarea>";
Ich hab dabei mal auf das FILE_IGNORE_NEW_LINES-Flag verzichtet, sonst würde das ganze zur Scroll-Orgie verkommen.
 
Zuletzt bearbeitet:
Zurück