Andü: Weblog-Verwaltung ohne SQL

Huhu,

ich versuche grade so eine Art Weblog anzulegen wo ich immer neue Artikel hinzufüge und diese werden dann automatisch mit Erstellungsdatum, evtl. Kommentar, usw. gespeichert.
Wie kann man so eine Umsetzung am besten verwalten? In einer txt-Datei mit allen Informationen in einer Datenbank könnte das ziemlich komplex werden. Hätte da jmd eine bessere Möglichkeit?

  1. Hallo

    z.B. in einer XML-Struktur...

    <blog>
    <eintrag id>
    <titel></titel>
    <datum></datum>
    <autor></autor>
    <inhalt></inhalt>
    </eintrag>
    <eintrag id>
    <titel></titel>
    <datum></datum>
    <autor></autor>
    <inhalt></inhalt>
    </eintrag>
    ...
    </blog>

    oder so ähnlich.

    Gruss

    1. Danke, darüber hab ich auch schon nachgedacht. Gibt es dazu dann auch gleich PHP-Funktionen um die XML-Datei auszulesen (ohne denn Kompletten Text selbst zu zerlegen) oder muss ich dass dann komplett über XML/DTD machen?

      1. Hallo

        PHP hab ich keinen Plan, aber würde mich wundern, wenns da sowas nicht gäbe.

        Gruss

        1. Hab bei SELFPHP nur mal kurz nach XML gesucht und nicht wirklich was sinnvolles gefunden. Ich dachte bloß es könnte mit PHP relativ dynamisch gemacht werden.

          1. hi,

            Hab bei SELFPHP nur mal kurz nach XML gesucht und nicht wirklich was sinnvolles gefunden. Ich dachte bloß es könnte mit PHP relativ dynamisch gemacht werden.

            http://www.php.net/manual/de/
            [strg]+[f] xml

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. http://www.php.net/manual/de/
              [strg]+[f] xml

              Ehrlich gesagt, geht mir dieses Handbuch ziemlich aufn Nerv.
              1. Jeder schickt einen dort hin.
              2. Es ist sowas von unübersichtlich, wenn man bloß was sucht.
              3. Leicht verständlich ist es auch net unbedingt - zumindest sind persönliche Antworten meist besser.

              1. Hallo Andü.

                1. Jeder schickt einen dort hin.

                Ist ja auch die Anlaufstelle Nr. 1. Den Großteil von PHP, den ich momentan beherrsche, habe ich mir dort angeeignet.

                1. Es ist sowas von unübersichtlich, wenn man bloß was sucht.

                Auszug aus meiner search.ini:

                [Search Engine 15]
                Name=&PHP.net Function Search
                URL=http://de2.php.net/manual-lookup.php?pattern=%s
                Query=
                Key=php
                Encoding=utf-8
                Is post=0
                Has endseparator=0
                Search Type=0
                VerbText=17063

                Für eine schnelle Funktionssuche verdammt praktisch. :)

                1. Leicht verständlich ist es auch net unbedingt - zumindest sind persönliche Antworten meist besser.

                Unter nahezu jeder Funktion gibt es z. T. nützliche Userkommentare.
                Helfen die dir nicht?

                Gruß, Ashura

                --
                Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                30 Days to becoming an Opera8 Lover -- Day 15: Mouse Gestures
                Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
                1. Hi Ashura!

                  Auszug aus meiner search.ini:

                  [Search Engine 15]
                  Name=&PHP.net Function Search
                  URL=http://de2.php.net/manual-lookup.php?pattern=%s
                  Query=
                  Key=php
                  Encoding=utf-8
                  Is post=0
                  Has endseparator=0
                  Search Type=0
                  VerbText=17063

                  Ich gehe mal einfach davon aus, dass du das ganze mit nem Opera nutzt. Ich hab jetztz eben mal versucht, das ganze bei mir einzubauen, aber weder die Eingabe von "php is_dir" (als Beispiel) in die Adressleiste noch ein Rechtsklick auf ein markiertes Wort und "Search with" zeigen Ergebnisse...

                  Woran kann das liegen?

                  Gruß

                  Martin

                  1. Hallo Martin.

                    Woran kann das liegen?

                    Ich weiß nicht, wie bewandert du mit dem Editieren der search.ini bist.
                    Entscheidend ist, dass die eigene Search Engine sich nahtlos in die laufende Nummer der vorhandenen einfügt. Soll sie zwischendrin erscheinen, müssen die nachfolgenden angepasst werden, da Opera die search.ini sonst als ungültig erkennt und durch die Standard-search.ini aus dem Programmhauptverzeichnis ersetzt.

                    Einfacher geht es natürlich mit Opsed. :)

                    Gruß, Ashura

                    --
                    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                    30 Days to becoming an Opera8 Lover -- Day 15: Mouse Gestures
                    Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                    IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
                    1. Hi!

                      Einfacher geht es natürlich mit Opsed. :)

                      Ah, jetzt, ja! Danke, es klappt!

                      Gruß

                      Martin

              2. hi,

                Ehrlich gesagt, geht mir dieses Handbuch ziemlich aufn Nerv.

                wenn du in PHP programmieren willst, solltest du dich trotzdem mit ihm anfreunden.

                1. Jeder schickt einen dort hin.

                natürlich - weil es das handbuch ist.

                1. Es ist sowas von unübersichtlich, wenn man bloß was sucht.

                dann suchst du falsch.
                mit ein bisschen übung findet man meist sehr schnell passende funktionen.
                dazu muss man sich natürlich erst mal überlegen, zu welchem "bereich" die gesuchte funktion wohl gehören könnte. und dann schaut man mal auf der einsteigsseite, was es da so alles gibt ...

                1. Leicht verständlich ist es auch net unbedingt - zumindest sind persönliche Antworten meist besser.

                die schon erwähnten userkommentare sind oftmals hilfreich, wenn man etwas tiefer einsteigen will.

                und ein wenig musst du dich schon selbst mit der materie beschäftigen, wenn du programmieren willst - ausschließlich auf "persönliche antworten" im forum zu bauen und sich darauf zu verlassen, ist kein programmieren.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Morgen,

                  gut, hab das jetzt mit XML realisiert. Jetzt kommt das nächste Problem:
                  Innerhalt einiger XML-Tags habe ich HTML-Befehle, welche eigentlich zum Text mit dazu gehören. Wenn ich die XML-Datei nun mit <a href="http://www.media-palette.de/tools/xml-line/" target="_blank">XML-Line</a> einlese hab ich dass Problem, dass die Texte mit HTML-Befehlen einzeln nochmal als Array geladen werden.

                  Ich hab versucht das ganze Problem damit zu umgehen, dass ich beispielweise <br> zu {[br]} umwandle und dann im einmgeladenen Array zurück konvertiere. Mein Problem ist, dass ereg_replace-Suchmuster nicht das gewünschte Ergebnis bringt.

                  ereg_replace (("({[)(/)*(.+)(]})","<\3>",$array)
                  Das hat zur Folge, dass vom ersten bis zum letzten {[br]} alles ersetzt wird. Ich bräuchte sozusagen noch die Negierung, dass nicht ]} auch innerhalb der Klammern steht...

                  Ich wäre auch für ganz andere Vorschläge offen, solange sie gut zu verwirklichen sind.

                  1. Hi Andü,

                    ereg_replace (("({[)(/)*(.+)(]})","<\3>",$array)
                    Das hat zur Folge, dass vom ersten bis zum letzten {[br]} alles ersetzt wird. Ich bräuchte sozusagen noch die Negierung, dass nicht ]} auch innerhalb der Klammern steht...

                    Dieses Verhalten ist klar, da Reguläre Ausdrücke standardmäßig "gefräßig" sind, und also so viel matchen, wir irgendwie möglich.

                    Ohne die Backslashes zum Escapen, sieht das oben so aus: ({[)(/)*(.+)(]})
                    Da kannst du dir die ganzen Runden Klammern ersparen:    {[/*.+]}
                    Außerdem ist das * unpraktisch, dafür ist ? geeignet:    {[/?.+]}

                    Das ? steht für 0 oder 1 mal.

                    Das eigentliche Problem liegt aber in dem + begraben - wenn du eine PCRE-Standard Funktion verwenden würdest (also die preg_* Funktionen), dann könntest du den Modifier U (steht für ungreedy) anhängen.

                    Es sollte aber auch möglich sein, hinter das + noch mal ein ? zu schreiben, damit nimmst du diesem + die "Gefräßigkeit". So sollte es also gehen:

                    {[/?.+?]}

                    Natürlich jetzt noch wieder alles schön escapen ;-)

                    MfG, Dennis.

                    --
                    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                    Das Leben ist kein Warenhaus - es nimmt nichts zurück. (Anette Louisan)
                    1. Gut... Jetzt ist das Problem, dass ich den multi-Array in dem die Texte gespeichert sind komplett mit der Umformung ändern will.
                      Das heißt für mich ich brauch 2 verschachtelte foreach-Schleifen. So wie ich die Umsetzung gemacht hab geht das aber nicht...

                      foreach ($array as $key1)
                      {
                        foreach ($key1 as $key2 => $value)
                        {
                          $value = preg_replace ("#{[(/?.+?)]}#","<$1>",$value);
                        }
                        $array[$key1] = $key1;
                      }

                      1. Habs selbst rausgefunden...

                        foreach ($array as $key => $value)
                        {
                          $array[$key] = preg_replace ("#{[(/?.+?)]}#","<$1>",$value);
                        }

                        1. Hi Andü,

                          $array[$key] = preg_replace ("#{[(/?.+?)]}#","<$1>",$value);

                          Du hast jetzt als Delimiter # gewählt - da spricht auch überhaupt nichts dagegen, doch ist dann das Escapen von / überflüssig, da dieser sonst keine spezielle Bedeutung hat.

                          MfG, Dennis.

                          --
                          Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                          Schon gewusst, dass Bugs und Feature Vorschläge für das CForum ins Entwicklerforum oder in den BugTracker gehören und nicht hier her?
                      2. Hi Andü,

                        foreach ($array as $key1)

                        Wie auch im PHP Manual => Foreach nachzulesen, bekommst du bei der Angabe von nur einer Variable in foreach, in diese die Werte geschrieben, also nicht so wie du es hier erwartest, den Schlüssel.

                        MfG, Dennis.

      2. Hi Andü,

        Danke, darüber hab ich auch schon nachgedacht. Gibt es dazu dann auch gleich PHP-Funktionen um die XML-Datei auszulesen?

        Vor einiger Zeit habe ich mit Tom mal ein paar Funktionen geschrieben, mit denen du Daten bequem in Dateien speichern kannst, allerdings nicht in XML Struktur, sondern als serialisiertes Array. Ganz fertig ist das zwar bis jetzt noch nie geworden, aber die Basic Functions existieren schon und funktionieren auch recht gut. Es mag vielleicht nicht ganz leicht sein, da direkt durchzusteigen, aber ein Blick drauf lohnt sich doch allemal, du findest diese FlatBox hier oder hier.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Wer die FAQ gelesen hat, ist klüger! ... und weiß wie man Links macht ;-)