File einfügen und Texte trennen

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

  • File einfügen und Texte trennen

    Hi Leute,

    konnte über Suchen nix finden.

    Ich will Textdateien (eventuell auch html) in meine Seite einfügen.
    Dann aber bestimmte Textstellen herausnehmen und wo anders in der Seite plazieren.
    z.B. den Titel, der in der Text/html-Datein ganz oben steht, an eine bestimmte Positon extra für den Titel plazieren.

    Ich dachte mir, ich könnte das mit explode() machen, ging aber nicht, weil der Text dazu in einer line stehen muss, was bei der html nicht der Fall ist.

    Wisst ihr, wie man den eingefügten Text aufteilt und selber den Platz dafür bestimmen kann?

    Wie ihr merkt, bin ich noch Anfänger aber ich will noch lernen.

    Ciao
    arrays sind klasse

  • #2
    Hi,

    vielleicht hilft dir das weiter. Mit

    $datei = file("test.txt");

    kannst du eine Datei zeilenweise in ein Array einlesen. Die erste Zeile steht dann in $datei[0], die zweite in $datei[1] usw....

    Gruß
    fusiba

    Kommentar


    • #3
      Danke dir, das hilft mir schon weiter
      Kann ich es dabei auch so anzeigen lassen:
      $datei[0]
      $datei[1]
      $datei[2]
      und jetzt dir restlichen Zeilen
      ?

      Ansonsten muss ich alles von 0 bis paartausend durchnummerieren.



      Merk man das ich keine Ahnung habe?

      Ciao
      Zuletzt geändert von Maranello-550; 25.08.2002, 20:13.
      arrays sind klasse

      Kommentar


      • #4
        PHP-Code:
        foreach ($datei as $i){
        echo 
        $i;

        gibt die ganze Datei aus.
        PHP-Code:
        foreach ($datei as $i){
        if 
        preg_match ("/<title>/i," $i) echo strip_taqs($i);

        würde nur die Zeile einer HTML-Datei ausgeben, die den Titel enthält. usw... oder auch ganz anders...

        Kommentar


        • #5
          wenn du die ganze Datei auf einmal ausgeben möchtest geht auch folgendes:

          echo implode( "", file("test.txt) );


          http://www.php.net/manual/de/function.implode.php

          Kommentar


          • #6
            Danke für eure Vorschläge

            Ich habe das jetzt so gemacht:

            PHP-Code:
            $datei file("texte/$t.html"); 
            foreach (
            $datei as $i){
            if (
            preg_match ("/<title>/i"$i)) echo strip_tags($i);

            so zeigt er aber den ganzen Text ohne html-Tags.
            Wie geht das, dass er nur die Zeile anzeigt, die "<title>" enthält?

            Den Rest anzuzeigen wird kein Prob sein
            Ciao
            arrays sind klasse

            Kommentar


            • #7
              habe mir eben ein Script Programmiert, was den Aktuellen Surftipp von http://www.drweb.de ausliest! Das kannst du ja umschreiben!
              PHP-Code:
              <?php
              $filename 
              "http://www.drweb.de/";
              $file = @implode('', (@file($filename)));
              $surftipp=$file;

              //$surftipp = strip_tags($surftipp); 
              $suche "<b>Surftipp des Tages:";
              $surftipp strchr($surftipp,$suche);

              $surftipp substr($surftipp0strpos($surftipp,"</a>")); 
              $surftipp .= "</a>";


              if (
              eregi ('<a href="(.*)" target="new">'$surftipp$out)) {
                  
              $link $out[1];
              }

              $suche '<a href="'.$link.'" target="new">';
              $img strchr($file,$suche);
              $img substr($img0strpos($img,"</a>")); 
              $img .= "</a>";
              $img preg_replace('!<img src="(.*?)"(.*?)>!','<img src="http://www.drweb.de/$1"$2>',$img);
              $img str_replace('class="rsa"','class="surftipp"',$img);

              echo 
              '<table><tr><td width="20%"><a href="http://www.drweb.de/surftipps/index.shtml"><img src="http://www.drweb.de/images/surftipp_hell.gif" border="0"></a></td><td align="center" width="10%">';
              echo 
              $img;
              echo 
              "</td><td>";
              echo 
              $surftipp;
              echo 
              '</td><td width="20%">&nbsp;</td></tr></table>';
              ?>

              Kommentar


              • #8
                Danke dir, aber ich weiß nicht recht was damit anzufangen.
                Mir fehlt einfach das KnowHow

                Wenn ich jetzt in der html-Datei bestimmte Tags um den Teil setze, den ich raushaben will, kann ich dann genau den Text zwischen diesen Tags herausbekommen und dahin setzen, wo ich will?
                Bsp:
                <title>Dieser Text!</title>
                <author>Der Typ!</author>

                Das wäre jetzt das einfachste
                arrays sind klasse

                Kommentar


                • #9
                  In Beispiel 6.7 kannst du dir anschauen, wie alles zwischen dem body-tag "herausgeschnitten" wird.

                  http://www.php-center.de/faq/faq-regexp.html#regexp-7

                  Kommentar


                  • #10
                    Ich mach ja schon
                    PHP-Code:
                    <?php

                    $filename 
                    "texte/$t.html";

                    $file = @implode('', (@file($filename)));

                    //Start Beliebig wiederholen (oder willste ne Schleife??)
                    preg_match_all("/<title>(.*?)</title>/i",$nav,$found);
                      
                    // Löschen des ersten Elementes, da dieses die RegEx enthält
                      
                    array_shift ($found);
                     
                      
                    $werte array_values($found[0]);
                      
                    $title=$werte[0];
                    //end Wiederholen
                    preg_match_all("/<author>(.*?)</author>/i",$nav,$found);
                      
                    // Löschen des ersten Elementes, da dieses die RegEx enthält
                      
                    array_shift ($found);
                     
                      
                    $werte array_values($found[0]);
                      
                    $author=$werte[0];

                    ?>
                    Da wo du den Titel Haben willst
                    PHP-Code:
                    <?php echo $title?>
                    Eingeben!
                    Bei dem Author
                    PHP-Code:
                    <?php echo $author?>
                    Hoffe es hilft!

                    Goebel

                    Kommentar


                    • #11
                      Ich muss dir wirklich meinen Dank aussprechen ... Also danke

                      Aber es klappt nicht.

                      Das wird ausgeworfen:
                      Warning: Unknown modifier 't' in ...
                      Warning: Argument to array_values() should be an array in ...

                      Warning: Unknown modifier 'a' in ...
                      Warning: Argument to array_values() should be an array ...

                      Ich will nicht nerven, weil ich ja wie gesagt ein purer Anfänger bin und nicht recht Ahnung von php habe. Deshalb spare ich mir auch lieber Fragen, wie "wo soll das hin" was ist daran falsch" etc.

                      ...Aber es wäre schon nett von euch, wenn ihr dabei noch helfen könntet

                      Ciao
                      Patrick
                      arrays sind klasse

                      Kommentar


                      • #12
                        Es wäre recht nützlich, wenn du nochmal posten könntest, wie dein PHP-Code jetzt genau aussieht, und in welcher Zeile die Fehler auftreten.

                        Kommentar


                        • #13
                          Ojee... kommt mir direkt peinlich vor
                          Der Code ist der von eben, die fehlerhaften Zeilen sind fett untermalt:

                          <?php

                          $filename = "texte/$t.html";

                          $file = @implode('', (@file($filename)));

                          //Start Beliebig wiederholen (oder willste ne Schleife??)
                          preg_match_all("/<title>(.*?)</title>/i",$nav,$found);
                          // Löschen des ersten Elementes, da dieses die RegEx enthält
                          array_shift ($found);

                          $werte = array_values($found[0]);
                          $title=$werte[0];
                          //end Wiederholen
                          preg_match_all("/<author>(.*?)</author>/i",$nav,$found);
                          // Löschen des ersten Elementes, da dieses die RegEx enthält
                          array_shift ($found);

                          $werte = array_values($found[0]);
                          $author=$werte[0];

                          ?>

                          Ich glaube zum einen liegt es an den Ausdrücken /title und /author .

                          Wasn die beiden anderen angeht kann ich nichts zu sagen *schäm*

                          Danke schonmal
                          arrays sind klasse

                          Kommentar


                          • #14
                            Ich glaube zum einen liegt es an den Ausdrücken /title und /author
                            du weißt doch schon, wo es hakt. Slashe die Slashes mit Backslashes aus. \/title und \/author Das hat das Forum nämlich geschluckt.
                            Zuletzt geändert von MeinerEiner; 26.08.2002, 19:25.

                            Kommentar


                            • #15
                              Ok - jetzt zeigt der aber gar nichts mehr an...
                              da sind wohl noch ein paar Mankos drin.


                              Ciao
                              arrays sind klasse

                              Kommentar

                              Lädt...
                              X