Zufälliger Textabsatz aus Datei ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zufälliger Textabsatz aus Datei ausgeben

    Hallo

    Ich habe ein Formular mit dem ich Text in eine Datei speichern kann.
    Der Textabsatz wird unten mit einer aufsteigenden Nummer (zur Nummerierung) angehängt .

    Jetzt generiere ich eine Zufallszahl und möchte je nach Zahl einen Absatz ausgeben (wenn Zufallszahl 5, dann den Absatz mit der Nummer 5 ausgeben).

    Da sich das aber alles in einer Datei befindet weiss ich nicht wie nur der bestimmte Absatz ausgelesen werden kann. Also von hinter der Nummer bis zur nächsten.

    Kann mir da jemand weiterhelfen?
    Eventuell mit Trennzeichen, aber wie mach ich das?

    Grüsse

  • #2
    naja, wie man eine datei zeilenweise auslesen kann, soltest du ja wissen. - ansonsten weißt du es spätestens nachdem du dieses post gelesen hast.

    dann brauchst du ja nur noch den anfang der zeile auszulesen. die fkt such ich dir raus.

    Kommentar


    • #3
      Das auslesen selbst ist kein Problem.
      Die Frage ist wie ich den Inhalt zwischen zwei definierten Punkten auslese.

      Was ist fkt?

      Kommentar


      • #4
        fkt ist funktion.

        wenn du zeilenweise auslesen kannst, brauchst du nicht mehr zwischen zwei punkten lesen

        Kommentar


        • #5
          Aber ich muss wissen welche Zeilen ich auslese.

          Wisst ihr überhaupt was ich meine?

          Nochmal:
          Die Datei text.txt
          _____________________
          |1 Dies ist Textabschnitt |
          |Nummer ein. |
          | |
          |2 Dies ist Textabschnitt |
          |Nummer zwei. |
          | |
          |3 Dies ist Textabschnitt |
          |Nummer drei. |
          | |
          |usw... |
          |____________________|
          Nun erzeuge ich eine Zufallszahl. Sagen wir Zahl=2.
          Jetzt würde ich gerne aus der Datei text.txt Textabschnitt Nummer zwei auslesen.
          Um aber den Textabschnitt zwei auslesen zu können brauche ich einen Einstiegspunkt und einen Endpunkt. Damit php weiss von wo bis wo eingelesen werden soll.
          Und wie das realisieren weiss ich nicht...
          Alles klar?

          Kommentar


          • #6
            naja, sinvoller wäre es so gewesen:

            1 abschnitt eins
            2 und die zwei
            3 noch ne drei

            aber okay...

            als trennzeichen hast du also

            |1 Dies ist Textabschnitt |

            und

            | |

            ???

            oder wie ist das?

            Kommentar


            • #7
              vielleicht mit einem regulären Ausdruck
              erst den kompletten Textfile auslesen -> in $sTextFileContent

              if(preg_match('/\|'. $iRandomZahl .' (.*?) \|/si', $sTextFileContent, $aMatch))
              $sMyText = $aMatch[1];

              würde aber vielleicht noch eindeutigere Anfangs- und Endpunkte wählen,
              da es nach dem Beispiel Probleme gibt, wenn im Text ein | vorkommt.

              z.B.
              if(preg_match('/@@START'. $iRandomZahl .'@@(.*?)@@END@@/si', $sTextFileContent, $aMatch))
              $sMyText = $aMatch[1];

              das textfile könnte dann so aussehen:
              @@START1@@Dies ist Textabschnitt@@END@@
              @@START2@@Dies ist Textabschnitt@@END@@
              @@START3@@Dies ist Textabschnitt@@END@@
              require_once('gehirn_v_02beta.php');

              Kommentar


              • #8
                Ja toshi, danke. Sowas habe ich gesucht

                Kommentar


                • #9
                  stellt sich nach toschis lösung nur noch die frage,

                  wofür mal a) start und endpunkte braucht, und b) wofür die ganzen regex. beides ist absolut überflüssig!

                  Kommentar

                  Lädt...
                  X