IT-Frank: Datum zerlegen

Hey Leutz

ich braeuchte mal eure Hilfe fuer eine Hausaufgabe unseres Dozenten die wir lösen sollen (irgentwie kam ich da nicht so richtig mit , obs am Montag lag -)))

Also wir haben eine Datei wo nicht das Datum im deutschen drin steht sondern in englischer Art und Weise

Datei heisst datum.txt drin steht

12 Jan 2000 IT Vorbereitungen
16 Jun 2000 IT Prüfung

was raus kommen soll, soll sein

20000112 IT Vorbereitung
20000616 IT Prüfung

das ganze mit explode

Danke schonmal im vorfeld....

  1. Hallo IT-Frank,

    Hey Leutz

    Hallo Student! Wo? Außerdem dürfte ich dir gar nicht helfen, da ich erstens jünger bin als du (und dementsprechend noch nicht studiert habe ;-), und zweitens dein dozent sein könnte ;-)

    ich braeuchte mal eure Hilfe fuer eine Hausaufgabe unseres Dozenten die wir lösen sollen (irgentwie kam ich da nicht so richtig mit , obs am Montag lag -)))

    Oh - PHP in der Uni? Wie gut dass ich es jetzt schon kann.

    12 Jan 2000 IT Vorbereitungen
    16 Jun 2000 IT Prüfung

    was raus kommen soll, soll sein

    20000112 IT Vorbereitung
    20000616 IT Prüfung
    das ganze mit explode

    Du  meinst NUR explode()? Da musst du ja richtig mitdenken!

    Wie will er nachweisen, dass ihr nur explode benutzt habt? Darfst du auch regular expressions nutzen?

    Aaaalso, ich würde mal sagen, du explodierst (*g*) es erst mal per "\n", um die einzelnen daten rauszubekommen. Und wenn alles im Schema

    DD MMM YYYY IT X*n

    ist, kannst du hier gaaaanz einfach explodieren lassen, dass überlasse ich dir. Ansonten würde ich weiter mit preg_split() machen, und zwar an dem leerzeichen nach der jahreszahl.

    DAs datum kannst du anschließend über strtotime() umsetzten lassen und daraus dann machen was du willst, oder du stellst das ganze neu zusammen, und zwar mit explode(); `;-)=

    WauWau

    --
    +-- WauWau Selfcode
    |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
    +-- WauWau Nostalgie
    |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
    |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
    +-- WauWau Heute
    |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
    |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
    +-- WauWau E-Mail
    |   Coming soon...
    1. Hey WauWau

      Nee bin kein Student, nur ein Umschüler also bei einem Träger...
      Problem ist das ich ehrlich gesagt nix verstanden hab... GRINZ

      Um auf deine Frage zurueck zu kommen ob wir preg_split() dazu einsetzen koennen kann ich dir nichts sagen da er meinte dieses mit explode zu bewerkstelligen....

      1. Hallo IT-Frank,

        Nee bin kein Student, nur ein Umschüler also bei einem Träger...

        was ist denn ein "umschüler"? -- und du hast mir immernoch nicht gesagt wo du studierst.

        Problem ist das ich ehrlich gesagt nix verstanden hab... GRINZ

        schlecht. Sag nicht du kannst gar nicht PHP...

        Um auf deine Frage zurueck zu kommen ob wir preg_split() dazu einsetzen koennen kann ich dir nichts sagen da er meinte dieses mit

        explode zu bewerkstelligen....

        dann bleibt dir nix anderes übrig. Datei mit file() einlesen, in foreach-Schleife rein (ist mit arrays so optimal), die Leerzeichen mit explode() explodieren lassen [explode(" ", $zeile);], dann hast du z.B. folgendes:

        array
          {
            [0] => "12",
            [1] => "jun",
            [2] => "2000",
            [3] => "Das",
            [4] => "ist",
            [5] => "der",
            [6] => "Text",
            [7] ...
          }

        Hier fügst du die ersten 3 Elemente per implode mit einem leerzeichen zusammen, machst darauf strtotime oder wie das nochmal hieß, machst mit dem gewonnenen timestamp was du willst (z.B. per date() das rausbekommen, was du haben willst) und die elemente, die größer als 3 sind werden per implode() zu einem weiteren string zusammengeräumt, fertig. Das wird am ende alles zusammengepappt, und alle sind glücklich.

        Gibt ein bisschen umstand, aber kaum. Ich muss ehrlich sagen, wenn man das im studium macht, könnte ich gleich morgen zur Goehte-Uni hier in Frankfurt geben (20km von mir entfernt) und mal bei einer Klausur mitschreiben - bin nur vielleicht ein bisschen jung ;-)

        WauWau

        --
        +-- WauWau Selfcode
        |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
        +-- WauWau Nostalgie
        |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
        |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
        +-- WauWau Heute
        |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
        |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
        +-- WauWau E-Mail
        |   Coming soon...
        1. <?php
          $datei = file('messages');
          foreach($datei as $line)
            $ausgabe = explode(" ",$line);

          {
          [1] => "1"

          so heisst also von die Zahl in Klammern sind fortlaufend

          1 - 31 fuer die Tage

          und 1 - 12 von Jan - Dez

          richtig

          ist das obige soweit richtig ??

          Achso ein Umschueler ist jemand der seinen alten Beruf aufgrund von Krankheit nicht mehr ausfuehren kann also eine neue Ausbildung..

          1. <?php
            $datei = file('datei.txt');
            $i = 0;
            foreach($datei as $line){
              $ausgabe[$i] = explode(" ",$line);
              $i++;
            }
            ?>
            In dem array sind doch nun alle informationen drin.. jetzt muss doch nur noch nach Datum formatiert werden oder ???

            1. Hallo IT-Frank,

              <?php
              $datei = file('datei.txt');
              $i = 0;
              foreach($datei as $line){
                $ausgabe[$i] = explode(" ",$line);
                $i++;
              }
              ?>
              In dem array sind doch nun alle informationen drin.. jetzt muss doch nur noch nach Datum formatiert werden oder ???

              mal sehen ... -> [pref:t=76350&m=440106] ist es ja, genau *g*

              WauWau

              --
              +-- WauWau Selfcode
              |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
              +-- WauWau Nostalgie
              |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
              |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
              +-- WauWau Heute
              |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
              |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
              +-- WauWau E-Mail
              |   Coming soon...
              1. Schitt den Rest bekomme ich einfach nicht hin.... ich glaube das ist mein erstes Mangelhaft....

                1. Hallo IT-Frank,

                  Schitt den Rest bekomme ich einfach nicht hin.... ich glaube das ist mein erstes Mangelhaft....

                  Wo liegt denn das Problem?

                  WauWau

                  --
                  +-- WauWau Selfcode
                  |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                  +-- WauWau Nostalgie
                  |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                  |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                  +-- WauWau Heute
                  |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                  |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                  +-- WauWau E-Mail
                  |   Coming soon...
                  1. Das ist keinen blassen Schimmer habe wie der Rest aufgebaut sein muss...

                    1. Wenn einer die Lösung hat wäre es nett diese bis 12 Uhr zu posten denn dann beginnt unser Unterricht....

                      Danke

                      1. Glück gehabt wir haben bis morgen noch Zeit, hat kaum einer hinbekommen also weiter gehts

                        1. Hallo IT-Frank,

                          Glück gehabt wir haben bis morgen noch Zeit, hat kaum einer hinbekommen also weiter gehts

                          hm - tud mir echt leid, vor 12 Uhr war ich leider noch nicht hier ;-)

                          Also, was funktioniert an meiner Lösung von da: [pref:t=76350&m=440106] nicht? Mann ich habe dir doch bereits eine Art fertigen Script geliefert, was willst du eigentlich noch mehr?

                          WauWau

                          --
                          +-- WauWau Selfcode
                          |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                          +-- WauWau Nostalgie
                          |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                          |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                          +-- WauWau Heute
                          |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                          |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                          +-- WauWau E-Mail
                          |   Coming soon...
                          1. Hey WauWau,
                            Also erstmal soweit recht herzlichen Dank fuer deine Hilfe,
                            war heute echt Klasse 80 % hatten das nicht hinbekommen also gabs verlängerung. Auf deine Frage hin welche Krankheit mir zu einer Umschulung verhalf war das ich 3 Bandscheibenvorfälle am Rücken kaputt habe und mehrere OP's hinter mir bringen musste und beide Knie kaputt sind also war mein Beruf als Tischler erledigt, also musste ich einen neuen Beruf erlernen, und so blieb die Umschulung als IT Fachinformatiker Systemintegration uebrig. Die Php Geschichte ist eigentlich eine einmalige Sache und gehört nicht zum Stoff, es geht im wesentlichen um Netzwerktechnik, OS Linux (mein Steckenpferd) Novell und natuerlich Microsh......
                            MySQL Datenbank Programmierung habe ich hintermir und hat auch Spass gemacht, nun folgt Speicherberechnung, und jede Menge Wirtschaftskram.... warum auch immer....

                            Nun gut ich hoffe ich konnte dir einen Ueberblick verschaffen.

                            Nun nochmal zum Script ich bekam einen Parse Error in 8

                            foreach($exp as $index => word) {

                            lag wohl daran das ein $ Zeichen vor Word fehlte,
                            nur setze ich dort ein $ Zeichen vor bekomme ich den Fehler in

                            Parse error: parse error, unexpected '}' in Line 13...

                            was ist hier noch falsch ????

                            1. war ein Semikolon Fehler hinter $new .= date("Ymd")." ".$description;

                              das Datum kommt jetzt schon raus nur folgt jetzt Fehlermeldung

                              Warning: Invalid argument supplied for foreach() in Line 8

                              Was nu wieder falsch

                              1. Kann es sein $old kein Array ist und $line leer ist und daher der Fehler ruehrt ??

                                1. Hallo IT-Frank,

                                  Ich bin jetzt nicht so richtig mitgekommen, würde dich aber mal bitten, nicht so eine mit-sich-selbst-konversation zu machen.

                                  Also, wo ist der Fehler?

                                  Ach, und wegen des Datums, welches nur als 3-ziffrig zugrundeliegt:
                                  Dann musst du ein Array erstellen, was sozusagen die "Buchstabenkombinationen" zu monatsdaten umsetzt, z.B. das folgende:

                                  $bla = array("jan"=>1,"feb"=>2,"mar"=>3....

                                  usw.

                                  Ich baue es wenn du willst ein, wenn du mal den code, den du bis jetzt hast, postest. Dann schauen wir uns noch mal die Fehler an, und dann solltest du dich beeilen, denn du brauchst es bis morgen, nicht wahr?

                                  Na gut, ich warte auf deine Antwort 8],

                                  WauWau

                                  --
                                  +-- WauWau Selfcode
                                  |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                                  +-- WauWau Nostalgie
                                  |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                                  |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                                  +-- WauWau Heute
                                  |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                                  |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                                  +-- WauWau E-Mail
                                  |   Coming soon...
                                  1. Hallo WauWau

                                    Hier der Code

                                    <?php
                                    $datei = file('testdatei');
                                    $old = explode(" ",$line);
                                    $new = "";
                                    foreach($datei as $line)
                                    {
                                      $date = ""; $description = "";
                                      foreach($exp as $index => $word) {
                                        if($index <= 31)
                                          $date .= " ".$word;
                                        else
                                          $description .= " ".$word;
                                    }
                                      $date = strtotime($date);
                                      $new .= date("md")." ".$description;
                                    }
                                    print $new;

                                    bin noch nicht weiter gekommen, sorry....

                                    hab noch bis 14 Uhr Zeit....

                                    1. Die spinnen die Römer, wir sollen das Script erweitern bis morgen um folgenden Punkt

                                      Mar 21 Prüfungen: Nürnberg 210 Teilnehmer, München 40 Teilnehmern.
                                      Jan 15 Prüfungen: Nürnberg 10 Teilnehmer, München 60 Teilnehmern.
                                      Mar 11 Prüfungen: Nürnberg 30 Teilnehmer, München 10 Teilnehmern.
                                      Jan 19 Prüfungen: Nürnberg 90 Teilnehmer, München 60 Teilnehmern.

                                      Addiere die Teilnehmer zur Gesamtsumme und sortiere nach Datum

                                      Ergebnis :

                                      01 220 Teilnehmer
                                      03 290 Teilnehmer

                                      kannst du das direkt mit einbauen dann hab ich das erledigt ist Freitag eh der letzte Tag mit Php Gott Sei Dank......

                                      1. Morgen ist Abgabetermin mit implementation der zusaetzlichen Aufgabe...

                                        Lieber WauWau sei so lieb und stelle mir den Rest des Scripts zusammen ich kann es nicht mehr sehen das php -))

                                        1. Hallo IT-Frank,

                                          Morgen ist Abgabetermin mit implementation der zusaetzlichen Aufgabe...

                                          hem, langsam wirds ja richtig kompliziert ;-)

                                          also, ich versuch da mal was zu basteln. Erst mal der script, so wie du ihn mir gepostet hast mit "fehlerkorrektur":

                                          <?php
                                          $datei = file('testdatei');
                                          $new = "";
                                          foreach($datei as $line)
                                          {
                                            $date = ""; $description = "";
                                            $exp = explode(" ",$line);
                                            foreach($exp as $index => $word) {
                                              if($index <= 31)
                                                $date .= " ".$word;
                                              else
                                                $description .= " ".$word;
                                            }
                                            $date = strtotime($date);
                                            $new .= date("md")." ".$description;
                                          }
                                          print $new;
                                          ?>

                                          Ok, außer ein paar Logiksachen (die explode-funktion ist irgendwie aus der schleife gerutscht ;-) funktioniert ja jetzt alles soweit. Wie ich eben mitbekommen habe, willst du aber plötzlich was ganz anderes:

                                          Mar 21 Prüfungen: Nürnberg 210 Teilnehmer, München 40 Teilnehmern.
                                          Jan 15 Prüfungen: Nürnberg 10 Teilnehmer, München 60 Teilnehmern.
                                          Mar 11 Prüfungen: Nürnberg 30 Teilnehmer, München 10 Teilnehmern.
                                          Jan 19 Prüfungen: Nürnberg 90 Teilnehmer, München 60 Teilnehmern.
                                          Addiere die Teilnehmer zur Gesamtsumme und sortiere nach Datum
                                          Ergebnis :
                                          01 220 Teilnehmer
                                          03 290 Teilnehmer

                                          Hm - das wird ja plötzlich immer einfacher? Oder ist das eine andere Aufgabe? Ach so, nach datum sortieren, super.

                                          Naja, du kommst dort oben jedenfalls unmöglich mehr um kompliziertere funktionen wie reguläre ausdrücke oder so was rum (das würde ich dir sehr ans herz legen).

                                          Also, machen wir uns mal daran, es würde sowas vorliegen:

                                          [Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Nov/Dez] [TAG] Prüfungen: Ort [ANZAHL] Teilnehmer, Ort [ANZAHL] Teilnehmer.

                                          Vorrausgesetzt, es bleibt _streng_ nach diesem muster, wirds jetzt recht einfach:

                                          <?php
                                          $datei = file("neue_aufgabe[...]");

                                          $new = array(); // Da wird ein Array mit der Teilnehmerzahl und dem datum reinkommen, das noch sortiert werden müssen wird

                                          foreach($datei as $eintrag)
                                          {
                                            preg_match("(\w \d\d) Prüfungen: \w (\d+), \w (\d+).", $matches);
                                            // $matches[1] sollte jetzt z.B. "Mar 21" sein
                                            // $matches[2] die Zahl der ersten Prüfung, z.B. 210
                                            // $matches[3] die Zahl der zweiten prüfung, z.B. 40
                                            $timestamp = strtodate($matches[1]);
                                            $teilnehmer = $matches[2] + $matches[3];
                                            $new[$timestamp] = $teinehmer;
                                          }

                                          $new = asort($new); // ksort = ältester termin zuerst, asort = neuster zuerst!

                                          $counter = 1; //Zähler der dann hochzählt

                                          $ausgabe = ""; // Endausgabe
                                          foreach($new as $eintrag)
                                          {
                                            $ausgabe .= (strlen($counter) < count($datei) ? "0".$counter : $counter);
                                            $ausgabe .= " ".$eintrag;
                                          }

                                          print $ausgabe;

                                          ?>

                                          Wir können auch in E-Mail-Kontakt treten, wenn dir das hilft (dann kannst du besser sehen, ob ich dir schon geantwortet habe).

                                          na dann,

                                          WauWau

                                          --
                                          +-- WauWau Selfcode
                                          |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                                          +-- WauWau Nostalgie
                                          |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                                          |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                                          +-- WauWau Heute
                                          |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                                          |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                                          +-- WauWau E-Mail
                                          |   Coming soon...
                                          1. Hallo WauWau

                                            Erstmal ein Dankeschön fuer deine Muehe, find ich echt gut vor allen Dingen find ich es lustig das du sagst es wird einfacher Naja seh ich anders -)))

                                            Sag mal was kommt noch in die eckige Klammer ????

                                            <?php
                                            $datei = file("neue_aufgabe[...]");

                                            1. <?php
                                              $datei = file("neue_aufgabe[...]");

                                              Ups hab die eckige Klammer raus genommen jetzt kommen aber folgende Fehler

                                              Warning: Unknown modifier 'P' on line 8

                                              Fatal Error Call to undefined function: strtodate() on line 12

                                              Was das ???

                                              1. Hey WauWau

                                                Warum bekomme ich im ersten Script als Ausgabe

                                                0324 0324 0324

                                                obwohl dort doch folgendes drin steht

                                                12 Jan 2000 IT Vorbereitungen
                                                16 Jun 2000 IT Prüfung

                                                ???

                                                <?php
                                                $datei = file('messages');
                                                $new = "";
                                                foreach($datei as $line)
                                                {
                                                  $date = ""; $description = "";
                                                  $exp = explode(" ",$line);
                                                  foreach($exp as $index => $word) {
                                                    if($index <= 31)
                                                      $date .= " ".$word;
                                                    else
                                                      $description .= " ".$word;
                                                  }
                                                  $date = strtotime($date);
                                                  $new .= date("md")." ".$description;
                                                }
                                                print $new;
                                                ?>

                                                1. ACHTUNG da ist eine Sache die du sicherlich uebersehen hast und die wohl beabsichtigt eingebaut wurde schau mal

                                                  Mar 21 Prüfungen: Nürnberg 210 Teilnehmer, München 40 Teilnehmern

                                                  Teilnehmer  und   Teilnehmern

                                                  einmal ohne n und einmal mit....
                                                  Was fuer ein Schlitzohr der Dozent

                                                  1. Hallo IT-Frank,

                                                    Also, erst mal muss ich dir langsam aber sicher sagen: Deine 10 Postings _nerven_. Es ist viel, viel einfacher für mich, wenn du dir erst mal das anschaust, was ich gepostet habe, ausprobierst (meinetwegen), und dann zusammenschreibst, was dir einfällt. Du hast in jedem posting immer mal einen neuen einfall geschrieben, und das macht das ganze unübersichtlicher und die Möglichkeit, dir zu helfen, erschwert es (z.B. muss ich mir jetzt alles aus unterschiedlichen postings zusammensuchen).
                                                    Ich bitte dich also: Bitte schreibe mal nicht sooo viele postings.
                                                    Ach außerdem kannst du es ja gar nicht sooo eilig zu haben, denn du hast mir erst 40 Minuten später geantwortet.

                                                    so, und nun zum wesentlichen: ich werde mal "von oben nach unten" abbauen. Mein Script und die Fehler:

                                                    <?php
                                                    $datei = file("neue_aufgabe[...]");
                                                    //             ^^^^^^^^^^^^^^^^^^
                                                    //      Zu deiner Info: Hier soll lediglich der Dateiname hin, mehr nicht. DAs ist genauso wie bei dem ersten script.
                                                    $new = array();
                                                    foreach($datei as $eintrag)
                                                    {
                                                      preg_match("(\w \d\d) Prüfungen: \w (\d+), \w (\d+).", $matches);
                                                      // $matches[1] sollte jetzt z.B. "Mar 21" sein
                                                      // $matches[2] die Zahl der ersten Prüfung, z.B. 210
                                                      // $matches[3] die Zahl der zweiten prüfung, z.B. 40
                                                      $timestamp = strtodate($matches[1]);
                                                    //            ^^^^^^^^^^
                                                    //       Aua! Sorry, hier muss "strtotime" hin. Denn das macht aus dem string einen timestamp (ich werde es mal deines zeitmangels wegen nicht näher erklären)
                                                      $teilnehmer = $matches[2] + $matches[3];
                                                      $new[$timestamp] = $teinehmer;
                                                    }
                                                    $new = asort($new); // ksort = ältester termin zuerst, asort = neuster zuerst!
                                                    $counter = 1; //Zähler der dann hochzählt
                                                    $ausgabe = ""; // Endausgabe
                                                    foreach($new as $eintrag)
                                                    {
                                                      $ausgabe .= (strlen($counter) < count($datei) ? "0".$counter : $counter);
                                                      $ausgabe .= " ".$eintrag;
                                                    }
                                                    print $ausgabe;
                                                    ?>

                                                    So, da hätten wir mal das erste "abgearbeitet".

                                                    Und dann deswegen: "Warning: Unknown modifier 'P' on line 8"
                                                    Das ist wegen meinem Regulären Ausdruck (preg_match). Der ist nämlich soweit recht falsch. Du musst wissen, dass ich nicht sooo gut in Regulären Ausdrücken bin, ich habe bis jetzt noch keine richtige deutsche doku gefunden :((. Also, verbessere mal die zeile mit preg_match auf das folgende:

                                                    preg_match("/(\w \d\d) Prüfungen: \w (\d+), \w (\d+)./i", $matches);

                                                    DAs müsste dann schon viel besser sein.

                                                    SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
                                                    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
                                                                           (TRENNLINIE),

                                                    und nun zum ERSTEN Script (bitte nicht verwechseln) - doch vorerst noch eine Frage:

                                                    ___>> Bitte sage mir _endlich_, was deine gesamte Aufgabenstellung für die Aufgabe ist, die du morgen abgeben musst!!!

                                                    Ich habe übrigens nicht mehr so viel zeit... Um 20:15 kommt ein cooler Film im Fernsehen (RLT2), und entsprechend sollten wir uns vielleicht beeilen. Ich bin dafür, dass du in deinem Antwortposting 1. sagst was du insgesamt eigentlich willst und 2. die ergebnisse postest.
                                                    Ich bin nämlich ehrlich gesagt nicht dazu gekommen, die scripte zu testen, ich poste dir also hier nur dinge, von denen ich nicht weiß, ob sie so funktionieren (idr habe ich immer syntaxfehler drinnen, und dann noch ein paar logikfehler). Wenn du mir also endlich gesagt hast, was du willst, und mir die datei, die übrigens umgewandelt wird mal postetst (oder schicke sie mir per E-Mail), wäre das auch ganz super.

                                                    So, zum ersten:

                                                    Dein posting:

                                                    Hey WauWau
                                                    Warum bekomme ich im ersten Script als Ausgabe
                                                    0324 0324 0324
                                                    obwohl dort doch folgendes drin steht
                                                    12 Jan 2000 IT Vorbereitungen
                                                    16 Jun 2000 IT Prüfung
                                                    ???
                                                    <?php
                                                    $datei = file('messages');
                                                    $new = "";
                                                    foreach($datei as $line)
                                                    {
                                                      $date = ""; $description = "";
                                                      $exp = explode(" ",$line);
                                                      foreach($exp as $index => $word) {
                                                        if($index <= 31)
                                                          $date .= " ".$word;
                                                        else
                                                          $description .= " ".$word;
                                                      }
                                                      $date = strtotime($date);
                                                      $new .= date("md")." ".$description;
                                                    }
                                                    print $new;
                                                    ?>

                                                    Hmmmm ... "0324" sieht aus wie der 24.03. (ausgabe von date("md") wahrscheinlich). Ich würde es gerne mal bei mir ausprobieren, also ich denke, wir müssten es langsam aber sicher mal per e-mail machen
                                                    (ansonsten sind die hier sauer, weil du die prüfungsdaten postest ;-)

                                                    WauWau

                                                    PS: Ach ja, wenn dein Dozent/Proffessor das rausbekommt hier, dann bist du wegen täuschung dran...

                                                    --
                                                    +-- WauWau Selfcode
                                                    |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                                                    +-- WauWau Nostalgie
                                                    |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                                                    |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                                                    +-- WauWau Heute
                                                    |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                                                    |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                                                    +-- WauWau E-Mail
                                                    |   Coming soon...
                                                    1. Hey WauWau

                                                      Oki meine Mailadresse hab ich gesetzt....

                                                      also auf Script1 zurueck zu kommen

                                                      immer noch Ausgabe 0324 0324 0324

                                                      zweites Script Fehler

                                                      Fatal error: Call to undefined function: strtodate() in line 33

                                                      timestamp Zeile...

                                                      wenn du testen willst mach das doch die Daten hast du doch..
                                                      wegen meinem Dozenten mach dir mal keine Gedanken du glaubst doch nicht das ich sowas mit meinem richtigen Namen poste...

                                                      1. Hallo IT-Frank,

                                                        wegen meinem Dozenten mach dir mal keine Gedanken du glaubst doch nicht das ich sowas mit meinem richtigen Namen poste...

                                                        natürlich nicht. Naja, war auch nur so eine Idee.

                                                        Ich werde zwei Dateien aufsetzten und dir das ding mal zumailen.

                                                        WauWau

                                                        --
                                                        +-- WauWau Selfcode
                                                        |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                                                        +-- WauWau Nostalgie
                                                        |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                                                        |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                                                        +-- WauWau Heute
                                                        |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                                                        |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                                                        +-- WauWau E-Mail
                                                        |   Coming soon...
                                                        1. erstes Script

                                                          <?php

                                                          $convert = array("Jan" => "01",
                                                                          "Feb" => "02",
                                                                          "Mar" => "03",
                                                                          "Apr" => "04",
                                                                          "May" => "05",
                                                                          "Jun" => "06",
                                                                          "Jul" => "07",
                                                                          "Aug" => "08",
                                                                          "Sep" => "09",
                                                                          "Oct" => "10",
                                                                          "Nov" => "11",
                                                                          "Dec" => "12");

                                                          $arr = file('testdatei');
                                                          $datei = $arr; // for testing only

                                                          foreach($datei as $line)
                                                          {
                                                            $exp = explode(" ",$line);
                                                            $dates .= $exp[2].$convert[$exp[1]].$exp[0]." ".$exp[3]."<br>";

                                                          }

                                                          print $dates;

                                                          ?>

                                                          1. Hallo IT-Frank,

                                                            erstes Script

                                                            <?php

                                                            $convert = array("Jan" => "01",
                                                                            "Feb" => "02",
                                                                            "Mar" => "03",
                                                                            "Apr" => "04",
                                                                            "May" => "05",
                                                                            "Jun" => "06",
                                                                            "Jul" => "07",
                                                                            "Aug" => "08",
                                                                            "Sep" => "09",
                                                                            "Oct" => "10",
                                                                            "Nov" => "11",
                                                                            "Dec" => "12");

                                                            $arr = file('testdatei');
                                                            $datei = $arr; // for testing only

                                                            foreach($datei as $line)
                                                            {
                                                              $exp = explode(" ",$line);
                                                              $dates .= $exp[2].$convert[$exp[1]].$exp[0]." ".$exp[3]."<br>";

                                                            }

                                                            print $dates;

                                                            ?>

                                                            Und wo hast du das jetzt her....?

                                                            WauWau

                                                            --
                                                            +-- WauWau Selfcode
                                                            |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                                                            +-- WauWau Nostalgie
                                                            |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                                                            |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                                                            +-- WauWau Heute
                                                            |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                                                            |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                                                            +-- WauWau E-Mail
                                                            |   Coming soon...
                                                            1. Schulkollege hat mir das geschickt

                                                              1. Hallo IT-Frank,

                                                                Schulkollege hat mir das geschickt

                                                                na gut, ich schicke dir jetzt per e-mail das andere, dann dürftest du es haben 8]

                                                                WauWau

                                                                --
                                                                +-- WauWau Selfcode
                                                                |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                                                                +-- WauWau Nostalgie
                                                                |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                                                                |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                                                                +-- WauWau Heute
                                                                |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                                                                |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                                                                +-- WauWau E-Mail
                                                                |   Coming soon...
                                                    2. Sorry hab was uebersehen

                                                      ausgabe geht jetzt lag an strtotime

                                                      jetzt nur noch einen Fehler in 21

                                                      Warning: Invalid argument supplied for foreach() in /var/www/microfun.de/html/singlecharts/admin/trafficzaehlen1.php on line 21
                                                      01 Jan 19 Prüfungen: Nürnberg 90 Teilnehmer, München 60 Teilnehmer.

                                                      nur stimmt da trotzdem was mit dem Datum nicht....

                                                      wenn du gelesen hast wurde in der Datei eine kleine Tücke eingebaut
                                                      und zwar Teilnehmer und Teilnehmern also mit n am Ende fürs zweite Script

                                                      Mar 21 Prüfungen: Nürnberg 210 Teilnehmer, München 40 Teilnehmern.
                                                      Jan 15 Prüfungen: Nürnberg 10 Teilnehmer, München 60 Teilnehmern.
                                                      Mar 11 Prüfungen: Nürnberg 30 Teilnehmer, München 10 Teilnehmern.
                                                      Jan 19 Prüfungen: Nürnberg 90 Teilnehmer, München 60 Teilnehmern.

                                                      Sorry musste es nochmal posten

                                                      1. Hallo IT-Frank,

                                                        Sorry hab was uebersehen
                                                        ausgabe geht jetzt lag an strtotime

                                                        aha. Und was gab er aus? Also kannst du mal ein paar zeilen beispiel wie sie eingegeben (fürs script) und dann vom script ausgegeben wurden?

                                                        jetzt nur noch einen Fehler in 21
                                                        Warning: Invalid argument supplied for foreach() in /var/www/microfun.de/html/singlecharts/admin/trafficzaehlen1.php on line 21

                                                        sehr schön, danke. Ich weiß nur leider nicht, wo bei deinem script die zeile 21 ist. Kann aber nur das sein:

                                                        foreach($new as $eintrag)

                                                        Ist aber nix falsch dran.

                                                        01 Jan 19 Prüfungen: Nürnberg 90 Teilnehmer, München 60 Teilnehmer.
                                                        nur stimmt da trotzdem was mit dem Datum nicht....

                                                        haha! Hier haben wir auch nicht das "Format"
                                                        "[Monat] [Zahl] Prüfungen: Text [Zahl] Text, text [zahl] text"!

                                                        Denn danach wie das folgende zitat es mich schließen lassen würden alle einträge so aussehen:

                                                        Mar 21 Prüfungen: Nürnberg 210 Teilnehmer, München 40 Teilnehmern.
                                                        Jan 15 Prüfungen: Nürnberg 10 Teilnehmer, München 60 Teilnehmern.
                                                        Mar 11 Prüfungen: Nürnberg 30 Teilnehmer, München 10 Teilnehmern.
                                                        Jan 19 Prüfungen: Nürnberg 90 Teilnehmer, München 60 Teilnehmern.

                                                        hmmm - außerdem ist das teilnehmer/teilnehmern kein problem, denn das:
                                                          preg_match("(\w \d\d) Prüfungen: \w (\d+), \w (\d+).", $matches);
                                                        Findet folgendes:

                                                        "[Ein Wort] [zwei zifferrn] Prüfungen: [Ein Wort] [egal wie viele zahlen], [ein Wort] [egal wie viele Zahlen]."

                                                        Dabei ist es egal, was das Wort jetzt genau ist, hauptsache es sind ein paar buchstaben.

                                                        WauWau

                                                        --
                                                        +-- WauWau Selfcode
                                                        |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                                                        +-- WauWau Nostalgie
                                                        |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
                                                        |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
                                                        +-- WauWau Heute
                                                        |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
                                                        |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
                                                        +-- WauWau E-Mail
                                                        |   Coming soon...
                                    2. Hab noch folgenden Fehler im Script

                                      Warning: Invalid argument supplied for foreach() on line 8

                          2. Achso ich vergas, das Datum beinhaltet nur ersten drei Buchstaben
                            zum Beispiel
                            23 Mar Heute keine Hausaufgaben

          2. Hallo IT-Frank,

            <?php
            $datei = file('messages');
            foreach($datei as $line)
              $ausgabe = explode(" ",$line);

            {
            [1] => "1"
            so heisst also von die Zahl in Klammern sind fortlaufend

            ? Nein, mein Beispiel hier war etwa das, was etwa print_r mit deiner Variable $ausgabe in deinem Script da oben rausbringen würde.

            1 - 31 fuer die Tage
            und 1 - 12 von Jan - Dez
            richtig

            was? Sofern ich richtig verstanden habe, willst du aus dem da

            12 april 2000

            sowas

            20001204

            oder? Dann würde ich den String da durch strtodate schicken.

            ist das obige soweit richtig ??

            hm - warte mal, gehen wir mal von folgender Datei aus:

            messages:

            12 april 2000 Das ist der Text dazu
            5 june 1989 IT irgendwas

            und nun der script

            $datei = file('messages');
            $old = explode(" ",$line);
            $new = "";
            foreach($old as $line)
            {
              $date = ""; $description = ""; // Englisch ist doch immer wieder toll
              foreach($exp as $index => word) {
                if($index <= 4)
                  $date .= " ".$word;
                else
                  $description .= " ".$word
              }
              $date = strtotime($date);
              $new .= date("Ymd")." ".$description;
            }
            print $new; // oder mach sonstwas mit new

            Herauskommen sollte dabei:

            20001204 Das ist der Text dazu
            19890605 IT irgendwas

            Naja. Du kannst es dir ja auf deine Bedürfnisse umschneiden. Oder vielleicht sollt ihr auch was ganz anderes machen.

            Achso ein Umschueler ist jemand der seinen alten Beruf aufgrund von Krankheit nicht mehr ausfuehren kann also eine neue Ausbildung..

            Aha. Was hattest du denn für eine Krankheit und was willst du werden? Du scheinst also nicht einer von den "klassischen" Informatikstudenten zu sein?

            WauWau

            --
            +-- WauWau Selfcode
            |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
            +-- WauWau Nostalgie
            |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
            |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
            +-- WauWau Heute
            |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
            |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
            +-- WauWau E-Mail
            |   Coming soon...
    2. Hi Wauwau!

      Hallo Student! Wo? Außerdem dürfte ich dir gar nicht helfen, da ich erstens jünger bin als du (und dementsprechend noch nicht studiert habe ;-), und zweitens dein dozent sein könnte ;-)

      Ach?

      Aaaalso, ich würde mal sagen, du explodierst (*g*) es erst mal per "\n", um die einzelnen daten rauszubekommen.

      Wozu? Die Daten stehen in einer Datei- die kann er zeilenweise einlesen.
      Innerhalb einer While-Schleifen und dann jede Zeile mit exlode zerlegen und in ein array überführeng - anders zusammsetzen und ausgeben..

      Gruß Sven

      1. Hallo Sven,

        Hallo Student! Wo? Außerdem dürfte ich dir gar nicht helfen, da ich erstens jünger bin als du (und dementsprechend noch nicht studiert habe ;-), und zweitens dein dozent sein könnte ;-)
        Ach?

        klar ;-)

        Aaaalso, ich würde mal sagen, du explodierst (*g*) es erst mal per "\n", um die einzelnen daten rauszubekommen.
        Wozu? Die Daten stehen in einer Datei- die kann er zeilenweise einlesen.

        ach so - stimmt, denkfehler. Dann kann er sich das sparen und es eben so machen.

        Innerhalb einer While-Schleifen und dann jede Zeile mit exlode zerlegen und in ein array überführeng - anders zusammsetzen und ausgeben..

        jep.

        WauWau

        --
        +-- WauWau Selfcode
        |   ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
        +-- WauWau Nostalgie
        |   Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
        |   Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
        +-- WauWau Heute
        |   Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
        |   Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
        +-- WauWau E-Mail
        |   Coming soon...
  2. Hallo IT(!)-Frank,

    [...]

    das ganze mit explode

    Damit hast Du doch schon die Lösung..oder?
    et voilà:
    http://de2.php.net/manual/de/function.explode.php

    Oder was genau bereitet die Schwierigkeit?

    Rätselnd Sven

    1. Die Schwierigkeit liegt eigentlich in der ganzen Aufgabe -)))
      Die Wandlung des Datums macht mir Kopfschmerzen....

      1. Hi!

        Die Schwierigkeit liegt eigentlich in der ganzen Aufgabe -)))
        Die Wandlung des Datums macht mir Kopfschmerzen....

        Mehrere Möglichkeiten - ich kenne ja nicht die gesamte Aufgabe und die Rahmenbedingungen.. also z.B. mit einem Assozitiven Array als "Hilfe":

        $monat["JAN"]="01";
        $monat["FEB"]="02";
        ...
        $monat["DEZ"]="12";

        hilft das?

        Sven

        1. Es soll einfach wie in meiner Anfrage erwähnt das Resultat in deutschem Datum raus kommen, es sagte nur das das mit explode zu bewerkstelligen sei...
          aber dein obiges Beispiel teste ich erstmal aus...

          1. OKI fangen wir mal oben an

            <?php
            $datei = file('datum.txt');

            was käme als naechster Schritt der anzuwenden wäre damit ich es auch verstehe und nicht einfach zusammen stelle..

        2. Wenn du so nett wärst und mir den Code geben könntest damit ich zumindest die Datumsangaben ausgelesen bekomme in eine Variable wäre ich dir sehr dankbar den Rest denke ich bekomme ich mit dem Array selber hin..