php-file auslesen und in file schreiben

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

  • php-file auslesen und in file schreiben

    Hi

    ich weiß ja, dass ich schon nen ähnlichen thread hatte( mit mysql ), aber das thema fesselt mich leider

    ich möchte gern eine csv-datei anhand einer php-datei erzeugen lassen (Damit deren Inhalte leicht in Exel übersetzt werden können)
    , weiß leider nur nicht wie
    aus mysql herraus kann ich es ja mittlerweile + wieder einlesen,dank euch..
    aber leider nicht aus einer php datei herraus.

    die php-datei (de.php) beinhaltet 2 verschiedene durchnummerierte Array-gruppen

    a. $text[1]
    ...
    b. $admin[1]
    ....

    Bsp. Auszug :
    $text[1] = "Textinhalt, wörter usw.";
    $admin[1] = "anderer Textinhalt, andere wörter usw.";

    wie generiere ich daraus ein csv-file ?
    Eine spalte für den arrayname und eine weitere für den textinhalt müßte doch reichen oder ?

    und wenn ich schon danach frage, würde ich auch gerne wissen,
    wie ich aus der erzeugten csv wieder eine php-datei erzeuge
    die genauso aussieht, wie die urpsungs-php-datei(de.php)

    Den ablauf hab ich eventuell schon, weiß nur echt nicht, wie ich da umsetzen muss..
    vielleicht hat ja jemand nen paar nerven übrig,
    um mir nen hilfreichen thread zu posten

    MEIN ANSATZ :
    Einlesen von daten:
    1. PHP Datei Einlesen, # $fp = fopen( "de.php", "r" );
    2. CSV Datei erzeugen # touch("de.csv");
    3. PHP Datei erzeugen # touch("de_new.php");
    4. Inhalte aufteilen # weiß nicht wie ich das in $arrayname und $textinhalt aufteile
    5. CSV Datei schreiben # wie setze ich das dann in eine schleife ? fputs($fp, "$arrayname;$textinhalt;\n") ?

    Einschreiben von Daten:
    PHP-Code:
    $dateiname="de.csv";
    $datei=fopen($dateiname,"r");
    $daten=fread($datei,filesize($dateiname));
    fclose($datei);
    $datensaetze=explode("\n",$daten);

    for(
    $i=0;$i<sizeof($datensaetze);$i++) 
         {
         
    $datenfeld[$i]=explode(";",$datensaetze[$i]);
         } 
    $fp fopen"de_new.php""w" );
         
    for(
    $i=0;$isizeof($datensaetze);$i++) 
    {
       
    $datenfeld[$i]=explode(";",$datensaetze[$i]);
       if(
    $datensaetze[$i] != ""
       {
       
    fputs($fp"$datenfeld[$i][0];$datenfeld[$i][1];\n");
       }


  • #2
    kann mir da wirklich niemand nen tip geben, wie ich die passende CSV aus einer php-datei generiere ?

    das einfügen von csv nach php hab ich fertig....
    hab mir dafür manuell eine csv erstellt...
    klappt super....

    jetzt müßte ich nur noch wissen, wie ich diese csv automatisch erzeuge


    hiiilfee !

    Kommentar


    • #3
      Immer mit der Ruhe Nicht jeder sitzt rund um die Uhr vor'm PC, ist im Forum unterwegs und hat Zeit / Lust, sich mit den Probs anderer auseinanderzusetzen. Davon abgesehen kennt nicht jeder die Antwort.

      Dein Problem wird schon noch gelöst, keine Sorge

      PS: Bin gerade wieder hier reingestolpert, werd mir die Sache mal kurz ansehen.

      Kommentar


      • #4
        Wie soll den deine CSV genau aussehen, wieviele Spalten z.B. ?
        Wieviele arrays sind es, die du auswerten und in eine CSV schreiben willst ?
        Kommen die Inhalte der arrays aus einer db ?

        usw....

        Kommentar


        • #5
          Original geschrieben von Tommy75
          Wie soll den deine CSV genau aussehen, wieviele Spalten z.B. ?
          Wieviele arrays sind es, die du auswerten und in eine CSV schreiben willst ?
          Kommen die Inhalte der arrays aus einer db ?

          usw....
          also meine csv soll 2 spalten besitzen.
          In der ersten, den arraynamen mit seiner nummerierung
          In der zweiten soll der passende wert stehen

          BSP :

          $text[1]; wort und satz;
          $admin[1]; wörter und sätze;

          Die arrays stehen in einer php-datei...kämen sie aus mysql, könnte ich sie verarbeiten.... nur zum verarbeiten aus php-files fehlt mir noch das knowHow

          ich dachte mir, datei öffnen, in array speichern,
          durch schleife laufen lassen, in der zerteilt wird oder so

          nur wie ich das anstelle weiß ich nicht

          Kommentar


          • #6
            Original geschrieben von bärlina
            Die arrays stehen in einer php-datei...kämen sie aus mysql, könnte ich sie verarbeiten.... nur zum verarbeiten aus php-files fehlt mir noch das knowHow

            Aber....auch, wenn die Daten aus der db kommen, verarbeitest du sie doch mit php, oder ? Wo liegt also der Unterschied

            Desweiteren schreibst du, in der ersten Spalte soll der Name des arrays stehen, in der zweiten der Inhalt dazu. Soweit ok. Allerdings hast du zwei arrays.....soll das heissen, du willst es so haben :

            $text[1]; wort und satz;
            $admin[1]; wörter und sätze;
            $text[2]; wort und satz;
            $admin[2]; wörter und sätze;
            $text[3]wort und satz;
            $admin[3]wörter und sätze;

            ?

            Sorry, dass ich nicht ganz verstanden habe was du meinst / willst...bin nicht mehr unbedingt soooo fit heute abend

            Kommentar


            • #7
              Original geschrieben von Tommy75
              .soll das heissen, du willst es so haben :

              $text[1]; wort und satz;
              $admin[1]; wörter und sätze;
              ...

              ?
              ja ungefähr

              hier mal ein orginal auszug aus meiner datei de.php

              ...
              $text[98] = "Bestellung von";
              $text[99] = "Farben";
              $text[100] = "Größen";
              $text[101] = "Zurück zur Startseite";
              $admin[1] = "Bestellungs-Manager";
              $admin[2] = "Offene Bestellungen";
              $admin[3] = "Fertige Bestellungen";
              ...


              es gibt zwei arraygruppen, weil die eine zur webseite gehört, und die andere zur admin-oberfläche

              nur wie ich diese daten in passende csv-format bekomme, bleibt mir weiterhin ein rästel...

              idee : alles links angefangen von $ bis = in die erste spalte und alles zwischen =" "; in die zweite spalte

              nur wie das trenne, geschweige denn in ein array bekomme weiß ich nicht

              Kommentar


              • #8
                PHP-Code:
                foreach($text as $k=>$v)
                {
                    echo 
                'text['.$k.'];'.$v.'<br>';

                meinst du das so ^^? dann ersetze echo durch eine variable und gut ist.
                Kissolino.com

                Kommentar


                • #9
                  Original geschrieben von Wurzel
                  PHP-Code:
                  foreach($text as $k=>$v)
                  {
                      echo 
                  'text['.$k.'];'.$v.'<br>';

                  meinst du das so ^^? dann ersetze echo durch eine variable und gut ist.
                  Hi Wurzel,

                  ich werd gleich mal probieren....wäre mir aber sehr unangenehm, wenn die Lösung wirklich so knapp und kurz wäre...

                  denn ich hab in 11 std das heir zustande gebracht :

                  PHP-Code:
                  # Beispielzeile aus de.php 
                  #
                  # $text[100] = "Text und Wort";
                  #
                  $dateiname="de.php";
                  $datei=fopen($dateiname,"r");
                  $daten=fread($datei,filesize($dateiname));
                  fclose($datei);
                  $dateizeilen=explode("\n",$daten);
                  foreach (
                  $dateizeilen as $zeile)
                  {
                   
                  touch("uk.csv");
                   
                  $fp fopen"uk.csv""a");
                    if (
                  substr($zeile,0,1)=="$")
                    {
                     
                  $tmp=explode("="$zeile);
                     
                  fputs ($fp,"$".trim(substr($tmp[0], 1)).';'.trim(substr($tmp[1], 0,-1))."\n");
                     }
                  }

                  # ergebnisauszug aus uk.csv :
                  #
                  # $text[100];"Text und wort"; 
                  Leider sind in der Lösung noch die Anführungszeichen übrig, die aber wegmüssen und ich bisher nicht weiß wie

                  Kommentar


                  • #10
                    schmeiss die mit str_replace raus.

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Original geschrieben von Kropff
                      schmeiss die mit str_replace raus.

                      peter

                      Hi Peter,

                      die funktion hab ich grad im handbuch gefunden, muss nämlich erwähnen, mit der funktion bisher nicht gearbeitet zu haben

                      weiß also auch leider noch nicht wie ich die richtig in meinem script anwende

                      Kommentar


                      • #12
                        zum beispiel so (ungetestet)
                        PHP-Code:
                        str_replace ('"','',trim(substr($tmp[1], 0,-1))) 
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          wow...

                          okay... ich verstehe zwar ungefähr, was da ablaufen soll, weil ich ja weiß, was ich erhalten möchte, aber wirklich durchblick verschafft mir das ( noch ) nicht....

                          bzw weiß ich nicht, wie ich es verwenden kann...

                          zufällig so wie es da steht, über dem fput string ?

                          Kommentar


                          • #14
                            Original geschrieben von bärlina
                            wow...

                            okay... ich verstehe zwar ungefähr, was da ablaufen soll, weil ich ja weiß, was ich erhalten möchte, aber wirklich durchblick verschafft mir das ( noch ) nicht....

                            bzw weiß ich nicht, wie ich es verwenden kann...

                            zufällig so wie es da steht, über dem fput string ?
                            du kannst das auch direkt in die zeile mit dem fputs einbauen.

                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              okay.schon mal gut zu wissen,
                              grenzt mein problem ein...

                              nur weiß ich nicht, wie ich diese zeile synatax-gemäß in meine zeile einsetze...
                              schon beim trim(substr half mir jemand, weil ich das nicht richtig hinbekam... und genau in diese meine schwachstelle muss ich das nun einsetzen

                              *alle viere in die lüfte streck*

                              Kommentar

                              Lädt...
                              X