Hilfe erstes Leerzeichen ersetzen

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hilfe erstes Leerzeichen ersetzen

    Hallo Ihr alle,
    hilfe ich muss in einer Textdatei, die ich regelmäßig erhalte vom Webserver downloaden und in jeder Zeile das erste Leerzeichen das erscheint durch einen "-" ersetzen. Mache das bisher manuell ist aber eine Arbeit für DOOFE. Hat jemand ein script ( PHP ) , das mir die Datei (heißt immer jule.txt )öffnet, das erste Leerzeichen in jeder Zeile ersetzt und als neue Datei speichet? Dann natürlich die alte Datei löscht.
    Bin eine absoluter Neuling ( Praktikum) . könnte dann glänzen!!
    Danke
    Julia

  • #2
    könnte dann glänzen!!
    aber nicht auf unsere kosten!!


    schaue dir im manual folgende fkts an

    - file
    - implode
    - strpos
    - substr / str_replace
    - fopen
    - fwrite / fputs
    - fclose
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Also zuerstmal die Datei einlesen (am besten Zeilenweise in ein Array)

      PHP-Code:

      $inhalt 
      file("jule.txt");
      $output = array();

      foreach(
      $inhalt as $wert)
      {
         
      $output[] = preg_replace(" ""-"$wert ,);

      Das müsste es schon gewesen sein.

      Gruss

      toibi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        habs ausprobiert funktioniert leider nicht

        habe

        <?php
        $inhalt = file("jule.txt");
        $output = array();

        foreach($inhalt as $wert)
        {
        $output[] = preg_replace(" ", "-", $wert ,1 );
        }

        ?>

        als jule.php Datei auf den Server gelegt und die jule.txt.
        dann im Browser die jule.php aufgerufen. In der txt hat sich nichts verändert.

        Bitte Hilfe!!!!!!!!!!!!

        Kommentar


        • #5
          selber nachdenken hilft dir am besten.

          noch was: du solltest dir mal eine neue tastatur kaufen. da klemmt wohl die ein oder andere taste.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Heute ist wohl wieder der Tag des Noobs-Lehrers...


            Schauen wir uns mal an, was das Skript macht:

            Code:
            <?php
            $inhalt = file("jule.txt");
            $output = array();
            ?>
            Der Variablen $inhalt wird der Inhalt von "jule.txt" zugewiesen. Jede neue Zeile ist ein neuer key in dem Array.

            Das Array $inhalt sieht dann folgendermaßen aus:

            $inhalt=array(
            0 => 'Zeile 1',
            1 => 'Zeile 2',
            ..... );

            Code:
            <?php
            
            foreach($inhalt as $wert)
            {
              $output[] = preg_replace(" ", "-", $wert ,1 );
            }
            ?>
            Jetzt gehen wir mit einem Foreach-loop jede Zeile durch und ersetzen mit preg_replace() " " durch "-" in der Variable $wert, aber nur 1 mal. Das Ergebnis wird in das Array $output geschrieben.

            Was muss also noch passieren? Genau, Du musst das entweder ausgeben oder in einer Datein speichern.

            Wie Du den Wert in eine Datei schreibst musst Du selbst rausfinden www.php.net -> Dokumentation.

            Das ganze soll ja einen Lerneffekt haben
            Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

            um so schlimmer für die Tatsachen.

            Kommentar


            • #7
              @julia: du musst die werte auch in die datei zurückspeichern. übrigens, du ersetzt da gerade jedes einzelne leerzeichen.....

              Ich würde mit dem Anker -> ^ <- arbeiten

              http://www.tutorials.de/tutorials142738.html
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                Er soll das erste Leerzeichen im Text ersetzen nicht ein führendes.
                Bei preg_replace ist ja das Limit 1 gesetzt.
                Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

                um so schlimmer für die Tatsachen.

                Kommentar


                • #9
                  @Shurakai
                  Mit dem preg_replace und Limit 1 sollte aber nur das erste Vorkommen eines Leerzeichens ersetzt werden. Oder irre ich mich da

                  Gruss

                  tobi

                  EDIT:

                  Zu spät

                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Hallo Winner,

                    hab versucht zu lernen und zu verstehen.


                    <?php

                    $inhalt = file("jule.txt");
                    $output = array();

                    foreach($inhalt as $wert)
                    {
                    $output[] = preg_replace(" ", "-", $wert ,1 );
                    }

                    $datei="output.txt";
                    $textdatei = fopen ($datei, "w+");
                    fwrite($textdatei, $output);
                    fclose($textdatei);

                    ?>

                    Habe es geschaft Die Datei output.txt zu erzeugen.

                    In dieser Datei steht aber nur in der ersten zeiel das Wort Array!
                    Aber in der Variablen $output sollte doch nun die gesamte Datei jule.txt mit dem ersetzen Leerzeichen stehen? oder ?

                    Gruss Julia

                    Kommentar


                    • #11
                      Das ist auch richtig so!
                      Du kannst kein Array in eine Datei schreiben.

                      Lediglich Stings (Zeichenkette), Integer(Ganzzahlen) und Float(Gleitkommazahlen) kannst Du direkt in eine Datei schreiben.

                      Du kannst also das Array wieder in einen String umwandeln, oder in unserem Beispiel wesentlich eleganter gleich einen String generieren.

                      Wenn Du einen String an einen bestehenden String anhängen willst machst Du das folgendermaßen: $s_old_string.='Das kommt dazu';

                      Hol Dir mal ein gutes Buch zu dem Thema. Kann Dir leider keines empfehlen (ist schon starke Zehn Jahre her, dass ich etwas entsprechendes gelesen habe)
                      Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

                      um so schlimmer für die Tatsachen.

                      Kommentar


                      • #12
                        @julia9060
                        hättest du meinen ersten post genau gelesen und im manual geblättert, wäre dir implode() sicherlich schon längst behilflich gewesen.

                        aber nein, du hast einfach keinen bock selber mal einfach was zu machen. und dann auch noch jammern ....
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Sorry habe das Schreiben in die Datei ganz vergessen:

                          PHP-Code:

                          //Inhalt als leerer String
                          $inhalt '';

                          //Array Inhalt als String
                          foreach($output as $wert)
                          {
                            
                          $inhalt .= $wert;
                          }

                          //neue Datei
                          $datei "jule2.txt";

                          //Datei öffnen
                          $fp fopen($datei,"r");

                          //Fehlerausgabe wenn nicht erfolgreich
                          if(!fwrite($fp,$inhalt))
                          {
                            die(
                          "Konnte nicht in die Datei $datei schreiben");
                          }
                          //Dateizeiger schrotten
                          fclose($fp); 
                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            @Abraxax

                            Was bist Du denn für einer? Ein kleiner Klugscheisser scheint mir!

                            Ein paar Brocken hinwerfen kann jeder, zu mehr scheint es bei Dir ja nicht zu reichen. Zum Wichtigmachen sieht das natürlich schon sehr gut aus. Bist wahrscheinlich so jemand der ein bischen PHP gelesen hat und nun auf jeder Party mit den paar Fachbegriffen um sich wirft um dazu zu gehören, aber nichts Vernünftiges auf die Beine stellt.

                            @ alle anderen

                            Freue mich das Ihr versucht der Julia zu helfen, nur so kann man jemanden motivieren etwas zu lernen.
                            Zuletzt geändert von xenios; 13.07.2005, 11:15.

                            Kommentar


                            • #15
                              @xenios

                              Das hier ist ein Forum das Hilfe zur Selbsthilfe bietet und nicht dazu da ist anderer Leute Hausaufgaben zu machen.

                              Leute die anderen auf Anfrage hier fertigen Code hinwerfen, motivieren keinen zum Lernen, sondern lediglich Copy&Paste zu benutzen ohne das Hirn einzuschalten.

                              Auch wenn ich persönlich hier nix zu sagen habe:
                              Für dein erstes Posting hier ist dein Ton einem Mod gegenüber inakzeptabel.

                              Gruss
                              Quetschi
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Kommentar

                              Lädt...
                              X