Ankündigung

Einklappen
Keine Ankündigung bisher.

newsposting auszug nicht laenger als zb. 50 woerter

Einklappen

Neue Werbung 2019

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

  • newsposting auszug nicht laenger als zb. 50 woerter

    hallo!

    mir is zwar klar dass es keine optimale loesung fuer die sache is, jedoch is die besondere einschraenkung an dem webspace auf dem die seite laeuft, die is das es kein sql gibt, daher wird mit txt files gearbeitet, was fuer mich persoenlich die sache schon sehr unsympathisch macht, da ich mich obendrein auch nur so basic zeugs beherrsche.

    und zwar gehts um folgendes, beim newsposting solls eh wie ueblich im admin bereich ein feld fuer datum, titel, dropdown fuer author, und einen textarea fuer die nachricht geben, die auf der news seite ausgegeben werdne,neueste immer oben

    Code:
    <?php
    setlocale (LC_ALL, 'de_DE@euro');
    
     if ($message != '') 
     {
      $message = str_replace ("\n","
    ",$message);
      $message = strip_tags ($message, '
    ');
    
      $newRow = ''. strip_tags ($name) .'&raquo;'. strftime('%A, %e.%B.%Y') .  '&laquo;' . ($message) . '
    ';
      	      
      $oldRows = join ('', file ('news.txt') );
      $fileName = fopen ('news.txt', 'w');
      fputs ($fileName, $newRow . chr(13) . chr(10) . $oldRows);
      fclose ($fileName);
     }
     
    echo "News wurden hochgeladen";
    ?>
    soweit ja habich ja eigentlich eh alles...oben stark gekuerzte version, kann also seind dass ich etwas vergessen habe, funktioniert bis dahin aber eh ohne probleme. das eigentliche problem an der sache is, dass die news vorraussichtlich alles sehr lang werden, und das einfach unangenehm aussieht, auf der uebersichts seite, deshalb sollte sie so angelegt werden wie es ehbekannt is, dass beispielsweise nur die ersten 50 woerter wiedergegeben werden, und man mit dem klick auf >mehr...< oder wie auch immer den vollen beitrag bekommt.
    geht das bei txt dateien ueberhaupt dass man nur bis zu einem bestimmten punkt den beitrag wiedergibt?! habe hierbei absolut keine erfahrung oder irgednwie ahnung drueber..


  • #2
    Ich denke,
    sub_str() sollte dir helfen

    Grüße,
    Jojo

    Kommentar


    • #3
      Ich denke,
      sub_str() sollte dir helfen
      Ich dachte er will max. 50 Wörter haben ?
      Wie kommst du jetzt auf substr() ?

      Dann sollte es wohl die besser die Wörter zählen

      Kommentar


      • #4
        Ich mache das so.

        PHP-Code:
        <?php
        $string
        ="blabla"//Hier muss der Text aus dem txt-file rein.
        $foo="200"//Wie viele Wörter sollen ausgegeben werden?
        $string=htmlentities($string); //Macht alles schön Browser gerecht ;)
        $string=wordwrap($string,$foo,"#<ö>#"); //Fügt nach jedem xy Wort ein "#<ö>#" ein.
        $string=explode("#<ö>#",$string//Teilt den String in die einzelnen Teile auf.
        echo $string[0]; //gibt die ersten $foo Wörter aus.
        ?>
        Die Zeichenkette "#<ö>#" kann auch nicht zufällig im Text vorkommen, da alle < und > vorher zu &gt; und &lt; umgewandelt wurden.

        Kommentar


        • #5
          danke..war schon klar das sub_str. nicht der weisheits letzter schluss isaber die letzte variante haut wunderbar hin danke...habe eben noch nicht besonders viel erfahrung mit php, da ich es eigentlich bisher immer nur maximal fuer mailforms etc. verwendet, schliesslich bin ich auch primaer fuer grafik zustaendig, habe. da irgendwie das breite anwendungsgebiet mich ein wenig abgeschreckt hat. aber ich denk mal es is zeit fuer was neues

          ich haett eigentlich dazu noch ne wahrscheinlich sehr schwammig wirkende frage...und zwar:
          der auszug aus dem newspost zb. vom 21.10.2005 soll mit den vielen anderen eben auf zb. der news.php seite stehen, und das [mehr...] unten sollte automatisch einen link machen zu einer dem wo das newspost aus ganzes lesbar ist. am besten als name datum + fortlaufende nummer.
          habe bei mehreren seiten gesehen dass die sache dann beispielsweise so aussieht:
          news.php?detail=21100501
          welche befehle waern da wichtig zum anschaun? oder gibts irgendwelche tutorials oder fertige einfach sachn aus denen man sowas ableiten koennte?!

          Kommentar


          • #6
            ähh....
            Sorry war zu spät: 3:40 Am Nachmittag: Da schlafe ich fast schon
            Nix für ungut

            Kommentar


            • #7
              Zitat von Jojo
              ähh....
              Sorry war zu spät: 3:40 Am Nachmittag: Da schlafe ich fast schon
              Nix für ungut
              ich glaub dass ich vorallem bei meinem wissen bzw nichtwissen niemand das gefuehl haben sollte sich zu entschuldigen

              Kommentar


              • #8
                doch,
                ich hab nämlich "50 Zeichen" gelesen und nicht "50 Wörter"

                Kommentar


                • #9
                  mit
                  PHP-Code:
                  <? $array = preg_split("/\s/",$text,6); ?>
                  wird dein Text nach Worten aufgespalten und in ein Array geschrieben. Dieses Array hat dann 6 Feldern.
                  In den ersten 5 sind deine ersten 5 Worte und im 6. der Rest.
                  Die ersten fünf kannst du dann aneinander hängen...tadaa!

                  Mehr krieg ich jetzt nich zu stande, geht bestimmt noch einfacher, so dass man direkt die ersten 5 Wörter in einem Feld hat.....

                  Grüße,
                  Jojo

                  Kommentar


                  • #10
                    Zitat von Matthias959
                    Ich mache das so.

                    PHP-Code:
                    <?php
                    $string
                    ="blabla"//Hier muss der Text aus dem txt-file rein.
                    $foo="200"//Wie viele Wörter sollen ausgegeben werden?
                    $string=htmlentities($string); //Macht alles schön Browser gerecht ;)
                    $string=wordwrap($string,$foo,"#<ö>#"); //Fügt nach jedem xy Wort ein "#<ö>#" ein.
                    $string=explode("#<ö>#",$string//Teilt den String in die einzelnen Teile auf.
                    echo $string[0]; //gibt die ersten $foo Wörter aus.
                    ?>
                    Die Zeichenkette "#<ö>#" kann auch nicht zufällig im Text vorkommen, da alle < und > vorher zu &gt; und &lt; umgewandelt wurden.
                    eine frage noch..is wordwrap nicht lediglich eine funktion fuer zeilenumbrueche?..sollte in dem fall nicht eher str_split verwendet werden?! auch wenns eh so geht..nur zwecks neugier

                    Kommentar


                    • #11
                      Nö, str_split() ist nicht dazu gedacht. Geht damit auch nicht.

                      http://de3.php.net/manual/de/function.str-split.php
                      Schau dir mal die Beispiele an.

                      Kommentar


                      • #12
                        hmmm, sollte mit einfachen str_word_count() auch gehen.

                        Kommentar

                        Lädt...
                        X