• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

var aus files auslesen?

T

totomoto

Guest
hallo zusammen
hab ein problem bei meinem versuch über 2 textfelder in eine datei zu schreiben und diese dann wieder im gleichen form feld wieder anzuzeigen. also das schreiben geht ja problemlos nur verliehrt er da den
$titel1 ich möchte aber die zeile mit diesem wieder aufrufen.

geht das gar nicht mit txt. files???

thanks toto

<?
$fp = fopen("text1.txt", "r");
if ($fp)
{
$newtext1 = fgets($fp, 300);

echo "<form action='save.php' method='post'>";
echo "<input type='text' name='newtext1' value='$titel1' size='60' maxlength='300'><br>";
echo "<textarea cols=50 rows=20 name='text1'></textarea>";
echo "<input type='submit' name='save1' value='Save'>";
echo "</form>";


fclose($fp);
echo "Daten wurden geschrieben";
}
else
{
echo "Datei nicht gefunden";
}
?>
 
Hallo,

du kannst in Textfiles nur Text reinschreiben und Text wieder rauslesen, d.h. speicherst du einen Variableninhalt in ein Textfile so wird der Inhalt als Text abgelegt.

Um nun wieder an den Variableninhalt zu gelangen, musst du mit Trennzeichen arbeiten, die du zwischen den einzelnen Variableninhalten in die Datei schreibst, und die Datei dann beim Auslesen nach diesen durchsuchen.

z.B. : 'variable1#variable2' '#' ist hierbei das Trennzeichen

P.S. Variablen einfach ein-und auslesen, wie du das vorhattest, ist nur mit typisierten Dateien möglich.

mfG Enrique
 
hallo enrique

vielen dank für deine antwort

leider bin ich noch nicht ganz so stark mit php

ok das mit dem Trennen ist klar:
fputs ($fp, "$titel1#$text1#");

aber wie kann ich diese dann wieder einlesen?
sprich zuteilen dass z.b. $titel bis zum 1. # geht???
und was meinst du mit typisieren Dateien?

danke und tschüsss....
toto
 
hi,

probier es mal so:

$fp = fopen("test.txt", "r");
$str = fread($fp, filesize("test.txt"));


while(ereg("([[:alnum:]]+)\#(.*)",$str,$regs))
{
echo $regs[1]\n";
$str=$regs[2];
}

fclose($fp);

mfG Enrique
 
hi,

jep so kann ichs auslesen aber leider nur das 1. wort, ich kann php zu wenig gut um dein script zu entziffern. aber im prinzip bist du schon ein schritt zuweit...

ich sag dir mal mein problem:

ich möchte einen teil auf meiner web-site (so was wie eine kolumne) einem kollegen zur verfügungstellen, d.h. er kann dann mittels formularfeldern seinen text eingeben der dann in einem file gespeichert wird.

dann binde ich das ganze in die web-site ein, das ist ja alles kein problem. jetzt aber hat er einen schreibfehler gemacht und möchte diesen korrigieren, also muss er die formfelder aufrufen können und diese müssten dann den alten inhalt anzeigen. verstehst du??

also mit php wäre das eigentlich einfacher aber es lohnt sich nicht...

gruss
und dank!!!

toto
 
von der rolle ...


ich meinte mit mysql wäre es einfacher aber lohnt sich nicht....

das ganze ist für leute die keine ahnung von html oder so haben..
 
Hi,

Also bei mir klappt's

so, in der Datei test.txt steht: Text1#Text2#

<?
$fp = fopen("test.txt", "r");
$str = fread($fp, filesize("test.txt"));


while(ereg("([[:alnum:]]+)\#(.*)",$str,$regs))
{
echo $regs[1];
$str=$regs[2];
}

fclose($fp);

?>

Ausgabe: Text1Text2

mfG Enrique
 
So, hier noch mal ein Beispiel mit einem Formular:

<?
$fp = fopen("test.txt", "r");
$str = fread($fp, filesize("test.txt"));
?>
<html>
<head>
<title>Test</title>
</head>
<form action="" method="" target="">

<?
if(ereg("([[:alnum:]]+)\#(.*)",$str,$regs))
{
?>
<input type="Text" value="<?echo $regs[1];?>">
<?
$str=$regs[2];
}

if(ereg("([[:alnum:]]+)\#(.*)",$str,$regs))
{
?>
<input type="Text" value="<?echo $regs[1];?>">
<?
$str=$regs[2];
}

fclose($fp);
?>

</form>

</html>


mfG Enrique
 
vielen lieben dank enrique

aber leider hauts noch nicht so ganz, zeilen liesst er nicht aus, d.h. er liest da nur die letzten 4 zeichen...

tja vielleicht sollte ichs trotzdem mit mysql machen...

trotzdem vielen, vielen dank.

toto
 
Hi,

Wennst die File nur zum auslesen brauchst, würd ich sie als Array einlesen lassen:

$fp = file("test.txt");
$temp = explode("text.txt[ZEILE]");
echo $temp[0]."".$temp[1];
 
Zurück
Oben