Ankündigung

Einklappen
Keine Ankündigung bisher.

Sternzeichen

Einklappen

Neue Werbung 2019

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

  • Sternzeichen

    Hallo,

    ich hab hier im htdocs ordner noch ein Sternzeichenscript für Communities gefunden. Hab es ein wenig modifiziert, es sollte aber leicht verständlich sein:

    PHP-Code:
    <?php
    function sternzeichen($day$month
    {
      
    $zodiac = array(
        
    0  => 'Steinbock',
        
    1  => 'Steinbock'
        
    2  => 'Wassermann'
        
    3  => 'Fische'
        
    4  => 'Widder',
        
    5  => 'Stier',
        
    6  => 'Zwilling',
        
    7  => 'Krebs',
        
    8  => 'L&ouml;we',
        
    9  => 'Jungfrau',
        
    10 => 'Waage',
        
    11 => 'Skorpion',
        
    12 => 'Sch&uuml;tze'
        
    );
     
        
    $dates = array(
          
    0  => array(mktime(0,0,0,12,22), mktime(0,0,0,12,31)),
          
    1  => array(mktime(0,0,0,01,01), mktime(0,0,0,01,19)),
          
    2  => array(mktime(0,0,0,01,20), mktime(0,0,0,02,18)),
          
    3  => array(mktime(0,0,0,02,19), mktime(0,0,0,03,20)),
          
    4  => array(mktime(0,0,0,03,21), mktime(0,0,0,04,19)),
          
    5  => array(mktime(0,0,0,04,20), mktime(0,0,0,05,20)),
          
    6  => array(mktime(0,0,0,05,21), mktime(0,0,0,06,21)),
          
    7  => array(mktime(0,0,0,06,22), mktime(0,0,0,07,22)),
          
    8  => array(mktime(0,0,0,07,23), mktime(0,0,0,08,22)),
          
    9  => array(mktime(0,0,0,08,23), mktime(0,0,0,09,22)),
          
    10 => array(mktime(0,0,0,09,23), mktime(0,0,0,10,23)),
          
    11 => array(mktime(0,0,0,10,24), mktime(0,0,0,11,21)),
          
    12 => array(mktime(0,0,0,11,22), mktime(0,0,0,12,21))
          );
     
          foreach(
    $dates as $k => $v
          {
            if(
    mktime(000$month$day) >= $v[0] && mktime(000$month$day) <= $v[1]) 
            {
                return 
    $zodiac[$k];
             }
          }
     
          return 
    false;
       }
     
       echo 
    sternzeichen(3112); // Tag, Monat
    ?>
    Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.


  • #2
    hm... sieht ähnliche diesem hier aus:
    codeschnipsel.net

    irgendwie sogar genauso..

    Kommentar


    • #3
      kann auch evtl. sein das es davon ist...hab das mal für ne community gebraucht.... habs halt letzens gesehen und dachte ich posts mal... (auf meinem pc gammeln noch soviele scripte rum, da weiß ich nichtmehr ob das meine sind, oder mal wo geladen oder, oder)..
      Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

      Kommentar


      • #4
        Ich bin Fan von kompakten Scripts und als ich das gesehen habe, dachte ich mir: Das muss doch nicht sein. Zwei Arrays die so viel Platz brauchen

        Drum hab ich die Arrays kurz zu nem Hash zusammengefasst. Natürlich ist Ambiences Lösung völlig in Ordnung. Meine ist halt eine andere Herangehensweise.

        PHP-Code:
        <?php
        function sternzeichen($day$month)    {

            
        $zod = array(
                
        'Steinbock' => array(mktime(0,0,0,12,22), mktime(0,0,0,12,31)),
                
        'Steinbock' => array(mktime(0,0,0,01,01), mktime(0,0,0,01,19)),
                
        'Wassermann' => array(mktime(0,0,0,1,20), mktime(0,0,0,2,18)),
                
        'Fische' => array(mktime(0,0,0,2,19), mktime(0,0,0,3,20)),
                
        'Widder' => array(mktime(0,0,0,3,21), mktime(0,0,0,4,19)),
                
        'Stier' => array(mktime(0,0,0,4,20), mktime(0,0,0,5,20)),
                
        'Zwilling' => array(mktime(0,0,0,5,21), mktime(0,0,0,6,21)),
                
        'Krebs' => array(mktime(0,0,0,6,22), mktime(0,0,0,7,22)),
                
        'L&ouml;we' => array(mktime(0,0,0,7,23), mktime(0,0,0,8,22)),
                
        'Jungfrau' => array(mktime(0,0,0,8,23), mktime(0,0,0,9,22)),
                
        'Waage' => array(mktime(0,0,0,9,23), mktime(0,0,0,10,23)),
                
        'Skorpion' => array(mktime(0,0,0,10,24), mktime(0,0,0,11,21)),
                
        'Sch&uuml;tze' => array(mktime(0,0,0,11,22), mktime(0,0,0,12,21))
            );

            foreach(
        $zod AS $zodiac => $date_arr)    {
                if(
        mktime(0,0,0,$month,$day)>=$date_arr[0] && mktime(0,0,0,$month,$day)<=$date_arr[1])    {
                    return 
        $zodiac;
                }
            }

            return 
        "F&uuml;r das eingegebene Datum wurde kein Sternzeichen gefunden";
        }

        echo 
        sternzeichen(1,1); // Tag, Monat
        ?>
        Gruss
        De Igäl
        Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
        Mark Twain

        Kommentar


        • #5
          Wenn man den Script aufruft, meldet er sich mit einem falschen Sternzeichen.

          Bin php Neuling - aber das ist mir aufgefallen.

          Zu sehen unter http://www.m1d.de/test/sternzeichen.php

          Gibts da eine Verbesserung?
          1. Wer lesen kann, ist klar im Vorteil.
          2. Da wo nichts ist, kann auch nichts passieren.
          3. Nichts ist Sicher.

          Kommentar


          • #6
            Wieso? Die Funktion wird im Script als Beispiel folgendermassen aufgerufen:
            PHP-Code:
            sternzeichen(1,1); // Tag, Monat 
            und die Ausgabe ist "Steinbock", was sehr wohl stimmt, da vom 22.Dezember - 20. Januar Steinbock angesagt ist. Wenn du die Funktion für ein anderes Datum verwenden willst, musst du die einfach die Parameter, mit denen du die Funktion aufrufst
            PHP-Code:
            sternzeichen(tag,monat); 
            anpassen.

            Das Script einfach 1:1 kopieren klappt natürlich schon, gibt aber kaum das zurück, was man will....

            Kommentar


            • #7
              Sternzeichen

              Danke für die schnelle Antwort - aber heute ist doch erst der 19.11. und das ist kein Steinbock.

              Oder muss im Script was angepasst werden?

              Danke
              1. Wer lesen kann, ist klar im Vorteil.
              2. Da wo nichts ist, kann auch nichts passieren.
              3. Nichts ist Sicher.

              Kommentar


              • #8
                Das Script gibt nicht aus, welches Sternzeichen momentan aktuell ist! Das Script gibt das Sternzeichen aus, das an dem Datum, das du der Funktion übergibst (im Beispiel der 01.01 bzw. 1.Januar), aktuell ist => Du musst den Aufruf der Funktion so anpassen, wie auch immer du es brauchst.

                Kommentar


                • #9
                  Sternzeichen

                  Habe das jetzt so verstanden das das Script auch im August "Steinbock" schreibt und nicht Löwe.

                  Danke für die Anwort.

                  Das Thema kann man schliessen.
                  1. Wer lesen kann, ist klar im Vorteil.
                  2. Da wo nichts ist, kann auch nichts passieren.
                  3. Nichts ist Sicher.

                  Kommentar


                  • #10
                    ...NEIN!
                    Das Script zeigt an jedem Datum das korrekte Sternzeichen an, sonst würde es ja auch keinen Sinn machen ein Script für Sternzeichen zu schreiben, wenn es sowieso nur Steinbock ausgibt.

                    Es macht den Anschein, dass du überhaupt keine Ahnung von PHP bzw von Programmierung allgemein hast. Falls du dich damit beschäftigen willst, damit du eines Tages verstehen wirst, was ich dir versucht habe zu erklären, arbeite dieses Tutorial gaaaanz gründlich durch: #php/QuakeNet Tutorial - Einführung.

                    Kommentar


                    • #11
                      Richtig - habe ich auch nicht - aber man wird wohl noch fragen dürfen?!

                      Eine gute Antwort wäre gewesen, "schreib mal an diese Stelle das und das rein dann wird das rauskommen."

                      Übrigens der Tip mit der angegebenen URL hat mich zum Schmunseln gebracht. Ich habe mir den Newsscript und das Gästebuch angeschaut, eine lange Liste von Script gelesen wo am Ende immer stand: "Aber diesen Script kann man nicht empfehlen".

                      Danke für die Aufheiterung.
                      Möchte an den Spruch erinnern: "Wenn man keine Ahnung hat, einfach mal die ....................."
                      1. Wer lesen kann, ist klar im Vorteil.
                      2. Da wo nichts ist, kann auch nichts passieren.
                      3. Nichts ist Sicher.

                      Kommentar


                      • #12
                        Zitat von jak21 Beitrag anzeigen
                        Richtig - habe ich auch nicht - aber man wird wohl noch fragen dürfen?!
                        Natürlich darf man fragen, ich habe dir ja auch drei oder viermal geantwortet oder nicht?

                        Zitat von jak21 Beitrag anzeigen
                        Eine gute Antwort wäre gewesen, "schreib mal an diese Stelle das und das rein dann wird das rauskommen."
                        Hier wirst du selten eine Antwort erhalten, die gerade die Lösung enthält, da wir eigentlich wollen, dass die Fragenstellenden auch noch selber ein bisschen etwas zur Lösung beitragen und nicht einfach eine komplette Lösung aufgetischt bekommen, weil sie so nichts lernen.

                        Zitat von jak21 Beitrag anzeigen
                        Übrigens der Tip mit der angegebenen URL hat mich zum Schmunseln gebracht. Ich habe mir den Newsscript und das Gästebuch angeschaut, eine lange Liste von Script gelesen wo am Ende immer stand: "Aber diesen Script kann man nicht empfehlen".
                        Fängst du ein Buch immer erst bei Kapitel 39 oder 40 an, wenn du keine Ahnung hast, worum es in den vorherigen 38 Kapiteln geht? Normalerweise fängt man bei 1 an und arbeitet sich dann langsam zu den hinteren Kapiteln vor.

                        Zitat von jak21 Beitrag anzeigen
                        Danke für die Aufheiterung.
                        Möchte an den Spruch erinnern: "Wenn man keine Ahnung hat, einfach mal die ....................."
                        Da ich ja Ahnung von PHP habe, trifft das ja auf mich nicht zu. Ich habe nur so reagiert, weil ich 3 mal versucht habe auf einfachste Weise zu erklären, was du an dem ganzen Missverstanden hast. Nur hatten deine Antworten auf meine Erklärungen irgendwie nicht viel mit dem gemeinsam, was ich dir erklären wollte und da ich das hier freiwillig mache, kann ich mir auch mal erlauben nicht immer nur nette Dinge zu schreiben, wenn mir etwas nicht passt. Es war überhaupt nicht persönlich gemeint, aber es ist leider immernoch so, dass viele Leute, die überhaupt keine Ahnung von PHP haben, hierher kommen und gleich hoch hinaus wollen und dafür halt fixfertige Script brauchen, weil sie ja keine Ahnung haben, wie man selber welche schreibt. Das ist aber genau das Gegenteil davon, was in diesem Forum angeboten wird. Hier wird einem Hilfestellung in Form von Denkanstössen (und ab und an mal auf Fehler in Scripts hinweisen) gegeben, aber definitiv keine fertigen Scripts. Ich habe 3x versucht dir einen meiner Meinung nach sehr einfachen Denkanstoss zu geben.

                        Aber wenn mein Hilfeversuch so wenig geschätzt wird....
                        Irgendwie vergessen die Leute, die hier Fragen stellen, immer wieder, dass sie froh sein können, dass ihnen geholfen wird. Stattdessen wird es als selbstverständlich angesehen und sobald mal nicht gleich geantwortet wird oder die Antwort nicht 100% das ist, was man erwartet hat, wird gleich gemeckert.....

                        Kommentar


                        • #13
                          Habe auch mal eine frage haben eine große chatplattform unser Programmierer ist leider gegangen nun versuchen wir selbr so gut s geht an php aber sind leider anfänger wie bkomme ich das sternzeichen in die profile eingebunden?kann mir jemand da helfen?

                          Kommentar


                          • #14
                            Das ist viel zu Allgemein, starte lieber einen eigenen Thread und schildere dein Problem genauer.

                            Kommentar


                            • #15
                              Ich finde die Implementierung nicht gut.
                              - Es werden redundaten Daten verwendet (Anfangsdatum eines TKZ und Enddatum des vorherigen bedingen einander).
                              - Wenn auch für die paar Elemente zu vernachlässigen: Die Schleife durchläuft die Daten unnötigerweise - schließlich gibt es eine Art Regelmäßigkeit.
                              - bei der Angabe von Tag und Monat ist der Weg über timestamps schlicht unnütz. Das sieht man sehr gut an den vielen Nullen im Ausdruck: mktime(0,0,0,2,19)

                              Mein Gegenvorschlag nutzt den Monat als Array-Schlüssel:

                              PHP-Code:
                              function sternzeichen2 ($iDay$iMonth)    {

                                
                              // Prüft nicht auf Gültigkeit der Parameter

                                //  Startmonat => (Startdatum , Bezeichner)
                                
                              $aZod = array (
                                              
                              1  => array (20 'Wassermann') ,
                                              
                              2  => array (19 'Fische'    ) ,
                                              
                              3  => array (21 'Widder'    ) ,
                                              
                              4  => array (20 'Stier'     ) ,
                                              
                              5  => array (21 'Zwilling'  ) ,
                                              
                              6  => array (22 'Krebs'     ) ,
                                              
                              7  => array (23 'Löwe'      ) ,
                                              
                              8  => array (23 'Jungfrau'  ) ,
                                              
                              9  => array (23 'Waage'     ) ,
                                              
                              10 => array (24 'Skorpion'  ) ,
                                              
                              11 => array (22 'Schütze'   ) ,
                                              
                              12 => array (22 'Steinbock' ) ,
                                              );

                                
                              // nur ein Vergleich, nicht bis zu 12
                                
                              if ($iDay $aZod[$iMonth][0])
                                  {
                                  
                              // nur für den Modulo
                                  
                              $aZod[0] = $aZod[12];

                                  return (
                              $aZod[($iMonth 1) % 12][1]);
                                  }

                                return (
                              $aZod[$iMonth][1]);
                                } 
                              Ich kapiere das bei Wiki nicht (Angaben wie Krebs: 20./21. Juni–22./23. Juli). Falls Tierkreiszeichen einer Schaltjahrregelung unterliegen, könnte man noch die Abweichung mit in den Datensatz packen und den Versatz auf die $iDay-Angabe draufrechnen.
                              --

                              „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