Blutiger Anfänger hängt in Schleife fest

Spelmann

Erfahrenes Mitglied
Ich probiere mich erst seit Tagen im Programmieren.
Folgendes Problem kann ich nicht lösen.
Ich habe 25 Textdateien (Durchnummeriert von 0-25) die ich auslesen und deren Inhalt ich als Variable weiterverwenden möchte.

Das Auslesen realisiere ich mit einer solchen Schleife:
PHP:
$counter=-1; $loop=25;
	do {
		$counter++;
		$lesen=fopen("seite/texte/akteure/akteur".$counter."_name.txt","r");
		$name_temp=fgets($lesen, 100);
		$name=$name_temp.$counter;
		echo $name."<br>";		
		}
	while ($counter<$loop);
	
	echo $name0;
	echo $name1;
	echo $name2;
	echo $name3;
Innerhalb der Schleife funtioniert das auch. Der echo Befehl in der Schleife gibt mir die Namen der Reihe nach aus.
Wie aber kann ich die Ergebnisse aber so umwandeln, daß sie auch ausserhalb der Schleife verwendbar sind wie in den 3 echo Befehlen unten?

Vielen Dank
 
Hmm, deine Syntax erscheint mir etwas falsch, probiere es doch mal so:

PHP:
<?php

for($i = 0; $i < 25; $i++) {
  $temp[] = file_get_contents("seite/texte/akteure/akteur".$i."_name.txt");
}

for($i = 0; $i < count($temp); $i++) {
  echo $temp[$i];
}

Sollte funktionieren...
$temp[x] sollte dann den Inhalt von Datei x.txt beinhalten.
 
Zuletzt bearbeitet:
Danke [Flex]

Abgesehen davon daß ich das script noch nicht verstehe, bekomme ich folgende Fehlermeldung:
Parse error: parse error, expecting `')''

Bin ich mit meinem Versuch völlig auf dem Holzweg?
Ich dachte die halbe Katze hätte ich schon im Sack als es innerhalb der Schleife funktionierte.
 
Habe es aktualisiert, probier es nocheinmal.

Dein Problem ist, dass du versuchst alles in einer Variable zu speichern... Du musst sie allerdings in ein Array speichern, sonst wird sie immer überschrieben.
 
Mmmh. Da gibts aber auch wieder eine Fehlermeldung:
Fatal error: Call to undefined function: file_get_contents()

Dein Problem ist, dass du versuchst alles in einer Variable zu speichern... Du musst sie allerdings in ein Array speichern, sonst wird sie immer überschrieben.
Ne, in eine Variable sollen die Inhalte nicht.

Ich hatte mir vorgestellt daß:
PHP:
$name=$name_temp.$counter;
mir an die Variable $name eine neue Zahl hängt und so allesamt als $name0 bis $name25
im script verfügbar sind.
 
Hoppla. PHP Version 4.1.1
Ist also schon etwas überholt.

Vielen Dank soweit erstmal.
Ich probier morgen mit deinem letzten Vorschlag weiter.
Wenn ich dann nicht weiterkomme meld ich mich wieder.

Schönen Abend noch.
 
Hallo,

mit '&name=&name_temp.&counter;' weist du der Variable '&name' einen neuen Inhalt zu. Du erzeugst damit mitnichten eine neue Variable.

Wenn du in einer Variable mehrere Werte - ich weiß, daß das ungenau ist, aber hier soll's genügen - speichern möchtest, brauchst du auch eine solche die Dir mehrere Fächer bietet.

Und das ist, wie andere Leute hier schon empfohlen haben, ein Array. Auf die Inhalte der Fächer eines Arrays kannst Du mit dem Index oder auch dem Namen das Fachs zugreifen.

Das sieht dann etwa so aus: '$fachinhalt = $meinArray[25]'
Oder so: $fachinhhalt = $meinArray["fachname"]

schönen Abend

Alexander Schell

ps: wieso ist denn der Text so blau?
 
Großartig. Es funktioniert.
Ein kleiner Schritt für einen der sich damit auskennt.
Ein großer Schritt dagegen für mich.
So sieht das dann also wohl richtig aus:
PHP:
$counter=-1; $loop=25;
	do {
		$counter++;
		$lesen=fopen("seite/texte/akteure/akteur".$counter."_name.txt","r");
		$name_temp=fgets($lesen, 100);
		$name[]=$name_temp;			
		}
	while ($counter<$loop);
	$name0=$name[0];
	$name1=$name[1];
	$name2=$name[2];
	$name3=$name[3];
	echo $name0;
	echo $name1;
	echo $name2;
	echo $name3;
Vielen Dank [Flex] und DealeyLama
:)
 
PHP:
$name0=$name[0];
    $name1=$name[1];
    $name2=$name[2];
    $name3=$name[3];
    echo $name0;
    echo $name1;
    echo $name2;
    echo $name3;

Warum das noch? Du kannst das Array auch direkt ausgeben:
PHP:
echo $name[0];
# etc
 
Zurück