Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Jeden Tag ein Geburtstag

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Jeden Tag ein Geburtstag

    Hallo
    ich habe ein PHP-Schnipsel der mir monatlich alle Geburtstage des aktuellen Monats aus einer *.txt-Datei ( Testmann|12|06| ) ausgibt.
    <?php
    // Geburtstag
    $geburtstage = file("geburtstage.txt");
    $ausgabe = "";
    $gb_counter = 0;
    foreach ($geburtstage as $geburtstag) {
    list($name, $tag, $monat) = explode("|", $geburtstag);
    if ($monat == date("m")) {
    $ausgabe .= $name . " am " . $tag . "." . $monat . "<br>\n";
    $gb_counter++;
    }
    }
    echo "<b>" . $ausgabe . "</b>";
    ?>
    Ich möchte aber das mir jeden Tag ein Geburtstag angezeigt wird z.B. Heute 12.06. Frank Testmann.
    Kann mir einer beim umbauen helfen?
    Danke und viele Grüße
    freeez


  • #2
    PHP-Code:
    if ($monat == date("m")) {
    $ausgabe .= $name " am " $tag "." $monat "<br>\n"
    ersetzen durch:
    PHP-Code:
    if ("$tag.$monat== date("d.m")) {
    $ausgabe .="Heute $tag.$monat  $name<br>\n"

    Kommentar


    • #3
      Jouu, hurraaaa, klappt,

      Vielen herzlichen Dank
      Gruß
      freeez

      Kommentar


      • #4
        Und das klappt?
        PHP-Code:
        $geburtstage file("geburtstage.txt");
        ...
        foreach (
        $geburtstage as $geburtstag) {
          list(
        $name$tag$monat) = explode("|"$geburtstag);
          if (
        $monat == date("m")) { 
        An sich müßte hier ohne trim gnadenlos die alte Problematik "file und der Zeilenumbruch" zuschlagen. Übersehe ich etwas?
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Zitat von nikosch77-new Beitrag anzeigen
          An sich müßte hier ohne trim gnadenlos die alte Problematik "file und der Zeilenumbruch" zuschlagen. Übersehe ich etwas?
          nicht wenn seine Zeilen mit | enden und list mit zu vielen Elementen klar kommt, das weiss ich nicht.

          Kommentar


          • #6
            Ja hab ich mir dann auch gedacht. list ist da flexibel. Sogar sowas geht:
            PHP-Code:
            list( , , $power) = $info
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Zitat von nikosch77-new Beitrag anzeigen
              Ja hab ich mir dann auch gedacht. list ist da flexibel. Sogar sowas geht:
              PHP-Code:
              list( , , $power) = $info
              Sprachkonstrukte haben doch schon vorteile gegenüber handelsüblichen Funktionen

              Kommentar


              • #8
                [OT] noch nix gegen dieses geile Python Konstrukt:
                Code:
                var = (20 if x == 1 else 30)
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Noch ein paar kleine Anmerkungen @freez

                  Der obige Code funktioniert zwar, der Algorithmus hat aber einige Schwächen. Ich weiß, das ist ein Miniscript, aber ich will mal exemplarisch zeigen, dass Programmieren mehr Überlegungen wert sein kann, als die erstbeste Lösung umzusetzen.

                  - Du durchläufst die Elemente komplett, wenn der gesuche Geb. der letze Datensatz oder gar nicht vorhanden ist.

                  - Du benutzt die Datenstruktur doppelt im Speicher: erst das $geburtstage Array, dann nochmal zeilenweise die gleichen Daten.
                  Alternativen:

                  1/ zeilenweise: aufgrund der festen Datenstruktur bspw. so:
                  PHP-Code:
                  if (false !== strpos ($geburtstagdate("|d|m|"))) {
                    list(
                  $name$tag$monat) = explode("|"$geburtstag);
                    } 
                  2/ dokumentweit: Ebenfalls ließe sich das gesamte Textfile als String einlesen und nach date("|d|m|") durchsuchen. Eine solche Überprüfung kann auch sinnvoll sein, um den unnötigen Komplettdurchlauf aller Daten zu verhindern.

                  - Du erhältst jetzt alle Geburtstage. Spätestens am ersten Datum, das nicht mehr stimmt wäre eine Abbruchbedingung der Schleife sinnvoll. Das klappt natürlich nur für ein sortiertes Array.
                  Für die Sortierung des Arrays gibt es Befehle. Allerdings ist die Datenstruktur des Textfiles ungeeignet. Monat|Tag|Name wäre optimal zu sortierten (für diesen Anwendungsfall)
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar

                  Lädt...
                  X