• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Komm iwie mit der while nich weiter

Flemli200

Mitglied
Hi,
ich möchte in einer while die dateinummer abfragen
die in einer textdatei liegt.

PHP:
$nummer=file_get_contents("nummer.txt");
while($i==$nummer)
{
//dann soll die nummer in einen link geschrieben werden und dannach  um 1 erhöht, bis //sie $nummer entspricht.
$Kapitel="<a href=\"#$i\" class=\"orange\"> $i  </a><br>";
$i++;
}
meine frage ist jetzt, wie ich das anstelle, das die ausgabe an einer bestimmten stelle stattfindet!
es soll in eine linkbar ausgegeben werden, die ein paar codezeilen weiter unten liegt.
Könntet ihr mir da helfen??
Ich weiß nicht wie ich die Variable da runter kriegen soll, bevor die mit einer neuen überschrieben wird!!
 
Werbung:
Warum überschriebst du eine Variabel, die du später benutzen willst?

Aber ich denke dein Ansatz ist verkehrt. oben und unten spielen im HTML Kontext keine Rolle und selbst wenn du willst, dass der Code später im Quelltext sein soll, warum rufst du die Funktion nicht einfach dort auf, wo du ihn benötigst?
 
Werbung:
Ich kann doch eine while schleife nicht in den echo"" teil schreiben...

Den kannst du ja vorher beenden :eek:

Kannst du nochmal klar sagen was du machen willst? Dateinummern abfragen? Was sind Dateinummern? Wie sieht deine Textdatei aus? Was ist dein $i und warum passt deine Schleifenbedingung überhaupt nicht zu den was du laut Kommentar erreichen willst?
 
Also... ich hab in ein paar textdateien texte hinterlegt, die chronologisch nummeriert sind... heißt 1.txt, 2.txt, 3.txt usw.
die Überschrift jeder Datei (1.) ist mit einem <a name='1.'>1.</a>
versehen, welche mit dem link <a href='#1.'> erreicht werden kann.

jetzt möchte ich, die inhalte der dateien auslesen udn jeweils in einen anderen teil des codes ausgeben (z.b. fenster1 und fenster2).
in einer navbar, sollen die links nach der reihenfolge angezeigt werden.

in einer extradatei wird jede neuerstellung mit +1 berechnet und gespeichert.
jetzt möchte ich diese extradatei auslesen, und soviele links und texte auslesen, wie existieren (extradatei mit nummer) und denn jeweils an die richtige stelle schreiben...

meine frage war jetzt... wie stell ich das an!
 
Werbung:
Leg die Dateien alle in ein seperates Verzeichnis, dann liest du das komplette Verzeichnis ein. Dann gibst du alles aus, wie man eine Datei öffnet und an den Inhalt kommt findest du selbst raus?

PHP:
 <?php
// Mit den folgenden Zeilen lassen sich
// alle Dateien in einem Verzeichnis auslesen
$handle=opendir ("pfad");
while ($datei = readdir ($handle)) {
 if (!is_dir($datei)){
       echo $datei.": \n";
       //datei öffnen, inhalt ausgeben lassen
     }
}
closedir($handle);
?>
PHP readdir - Dateien aus Verzeichnis (Ordner) auslesen (Quelle)
 
Ich hab ein grundgerüst, in welchem die datei ausgegeben wird und ich kann doch nicht mittendrin den echo beenden und mit einem neuen echo anfangen oder??

Wie pack ich die elemente dann an die richtige stelle und woher weiß ich welche datei welche ist??

Ich weiß ja nicht, da der ordner dynamisch ist welche datei ich auslese... d.h. ich hab keinen namen und nichts!

Wie läuft das mit den insidelinks für die navbar??
 
Ich hab ein grundgerüst, in welchem die datei ausgegeben wird und ich kann doch nicht mittendrin den echo beenden und mit einem neuen echo anfangen oder??
zeig das halt ma her. Und natürlich kann man ein echo beenden und wo anders weiter ausgeben.

Wie pack ich die elemente dann an die richtige stelle und woher weiß ich welche datei welche ist??
Auf den Dateinamen kannst du zugreifen, wie das geht steht in meinem letzten Beitrag. Du kannst sie noch sortiert ausgeben, also alphabetisch.


Ich weiß ja nicht, da der ordner dynamisch ist welche datei ich auslese... d.h. ich hab keinen namen und nichts!

Wie läuft das mit den insidelinks für die navbar??
:shock::shock::?::?::?:
 
Werbung:
Ich hab ein grundgerüst, in welchem die datei ausgegeben wird und ich kann doch nicht mittendrin den echo beenden und mit einem neuen echo anfangen oder??
wieso nicht?
Aber deine Fragestellung hatte nichts mit echo zu tun, du kannst auch den Inhalt in einer Variabeln sammeln und irgendwann später ausgeben.
 
Also... danke schonmal für die hilfe...

DAs grundgerüst für jeden text (jede txt datei) ist:

<div class='fenster'>
Text aus der textdatei + den link, der im Kopfteil drin ist und mit der navbar verknüpft ist (a href=#bla und a name='bla')
</div>

In der Navbar:
<div class='list'>
<b>Kapitel:</b><br>
Sollen hier die links zu den einzelnen texten auf der seite sein... nacheinander nach zahlen aufgelistet!
</div>

und im gesamtbild, steht dann rechts die navbar mit den links
und links mehrere Felder mit Text!!

Was ich nicht möchte, ist in die Textdateien den css code schon unterzubringen!
 
Werbung:
Leider hat der Server, auf dem die website liegen wird keine unterstützung für MSQL
und überhaupt datenbanken bzw. es wird extra geld dafür verlangt!

Ausserdem kenn ich mich mit datenbanken nich wirklich aus... muss ich gestehen.

Daher versuch ich das ganze mit dateien zu machen...


$handle=opendir ("kapitel");
while ($datei = readdir ($handle))
{
if (!is_dir($datei))
{
$ausgabe=file_get_contents("$datei");
echo "<div class='fenster'>".$ausgabe."</div>";
//datei öffnen, inhalt ausgeben lassen
}
}
closedir($handle);
Hab den code mal etwas angepasst... er gibt die dateien schon aus... jedoch nur wenn eine einzige existiert!!
Wenn mehr als eine datei im order kapitel ist
(z.B. 1, 2, 3, 4 mit .txt endung) dann macht er die nicht auf sondern zeigt mir:

Warning: file_get_contents(2.txt) [function.file-get-contents]: failed to open stream: No such file or directory in C:\xampp\htdocs\Schreib dein eigenes Buch\Kapitel\kapitel\read.php on line 36


das das am file_get_contents liegt versteh ich schon... jedoch nicht warum, denn codemäßig ist ads glaube ich korrekt
 
Zuletzt bearbeitet:
Du musst auch der Funktion sagen, in welchem Verzeichniss die Datei liegt.
 
Werbung:
sry das ich so viel frage... aber wo ist hier der fehler... ??
Er zeigt mir nichts als ausgabe an!

$nummer=file_get_contents("nummer.txt");
$i=1;
while($i==$nummer)
{
echo"<a href='#$i'>Kapitel $i </a><br>";
$i++;
}

Aber wenn ich die while wegnehme, zeigt er mir für $i und für $nummer eine ausgabe und wenn ich den echo aus der while ausgebe, hab ich auch eine ausgabe!
 
In der Schleifenbedingung überprüfst du, ob 1 dem Inhalt der Datei nummer.txt gleicht. Ich wette mein Pfeffersteak dass das nicht der Fall ist, ist doch klar, dass die Schleife nicht einmal ausgeführt wird.
 
Werbung:
ich wollte aber die schleife so lange durchlaufen lassen, bis $i $nummer gleicht!
also ist das dann while($i<=$nummer)
 
Du weißte schon, dass der Inhalt einer Datei nicht deren Dateiname ist oder?

Wie wäre es also, wenn du, wie von mir empfohlen, die Textdateien in ein Seperates Verzeichnis legst, dann das komplette Verzeichnis ausliest, den Dateinamen nimmst und als Link ausgibst?!
 
Zuletzt bearbeitet:
Zurück
Oben