1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

PHP - ich geb mir den String.

Discussion in 'Programmieren' started by pcschröder76, Jun 17, 2004.

Thread Status:
Not open for further replies.
  1. pcschröder76

    pcschröder76 Megabyte

    Hallo Loide!

    Ich hab da einen String mit folgendem Inhalt:

    Hallo
    wie
    gehts.



    Ich will den String folgendermassen "umbearbeiten":

    Hallo< br>wie< br>gehts.

    und in einer Textdatei speichern.

    Doch chop() entfernt lediglich die Zeilenumbrüche, während nl2br die < br> - Zeichen zwar einfügt, die Zeilenumbrüche aber beibehält!

    Echt hart. :heul:

    Danke für die Tipps!!!


    mfg

    Michael
     
  2. ich hoffe ich habe dich richtig verstanden.

    du kannst die <br> in der datei drinnen lassen, wenn du dann die Datei ausliest kannst du dann mit einen str_replace ersetzen in \n.

    $str=str_replace("<br>","\n",$str);

    dann bekommst du bei der ausgabe genau das was du willst.

    ich<br>du<br>er

    ergbnis mit str_replace

    ich
    du
    er
     
  3. pcschröder76

    pcschröder76 Megabyte

    Also, das Problem ist folgendes:

    ich hab einen String aus einem Textfeld, z.B. $_POST[text].

    Den will ich in einer Textdatei speichern, die Zeilenumbrüche sollen erhalten bleiben.

    Schreibe ich nun folgendes in die Datei:

    Hallo
    du
    wie
    gehts

    dann gibt er mir beim Auslesen der Datei den Inhalt nur bis "Hallo" an, weil er wohl denkt, dies sei das Ende der Datei.

    Ich will also die Zeilenumbrüche durch &lt;br&gt; ersetzen, doch wie mach ich das?? :confused:

    Tut echt langsam weh. :aua:

    Danke Euch,

    mfg

    Michael
     
  4. du kannst es machen mit str_replace.

    ich hoffe ich verstehe dich jetzt richtig du hast in einer textdatei was drinnen stehen

    z.b.

    test1
    ttest2
    test3

    so dann willst du das ganze auslesen und anzeigen??? wenn ja dann brauchst du die \n nur durch "HTML TAG br" ersetzen.

    z.b.

    $text=str_replace("\n","HTML TAG br",$text);
    echo $text;

    jetzt müsste er das ganez genau so ausgeben so wie es in der datei steht. am besten ist du postest mal deinen quellcode. dann tut man sich ein bisschen leichter.
     
  5. Aquaba84

    Aquaba84 Kbyte

    ich habs jez nicht durchprobiert, aber wennd as stimmt was du sagst dann lass doch beide funktionen drüberlaufen?!!?

    also $newstring = chop(nl2br($oldstring));

    die inne fkt klatscht die br's rein, die äußere haut dann die zeilenumbrüche weg... oder geht das nicht? sosnt müsste ichs probieren *g*

    und wenn nur am auslesen scheitert, kleienr tipp: textdatei zeilenweise einlesen, beispiele gibs dafür genug...
     
  6. pcschröder76

    pcschröder76 Megabyte

    Mach ich doch, ohne Erfolg... Doppel-:heul:

    Warum schreibst Du nicht weiter, gerade da, wo's spannend wird?


    Ok, hier mal der Quellcode:

    &lt; ?php
    if (($_POST['au']) && ($_POST['at']))
    {
    $schreiben = fopen ("Seiten/aktuell.txt", "a+");
    $text = "$_POST[au]#$_POST[at]";
    $text = nl2br($text);
    $text = chop($text);
    echo $text;
    fputs($schreiben, $text."§");
    $lesen = fopen ("Seiten/aktuell.txt", "a+");
    $aktuell = fgets($lesen,100);
    echo $aktuell;
    }
    ?&gt;


    Ausgegeben wird der Inhalt von "aktuell.txt" bis zum ersten Zeilenumbruch.

    Ok, ist heute nicht mein Tag, sonst würd ich's wohl selber rausfinden.

    mfg

    Michael


     
  7. kalweit

    kalweit Hüter der Glaskugel

    Dein Ergebnis ist richtig. Du sagst deinem Script, dass es die erste Zeile deiner Datei auslesen soll. Zitat aus der PHP-Doku:

    Zu deinem Problem macht dich die FAQ klug:
    http://www.dclp-faq.de/q/q-datei-lesen.html

    Gruss, Matthias
     
  8. pcschröder76

    pcschröder76 Megabyte

    Ok, ich muss mir das alles mal angucken.

    Schönen Dank erstmal,

    mfg

    Michael
     
  9. Aquaba84

    Aquaba84 Kbyte


    ich sagte doch, das ist das codebeispiel schlechthin, findeste auf jeder php seite...

    aber ich will mal nicht so sein


    zitat aus nen ebook über php von gallileocomputing:

    G.2 Lesen aller Zeilen einer Textdatei
    Im nachfolgenden Beispiel, werden alle Zeilen einer Textdatei gelesen und auf dem Bildschirm ausgegeben:

    Listing G.2 Datei ug02.php
    *html*
    *body*

    *?php
    $fp = fopen("ug01data.txt","r");
    if ($fp)
    {
    while (!feof($fp))
    {
    $zeile = fgets($fp, 100);
    echo "Zeile: $zeile*p*";
    }
    fclose($fp);
    }
    else
    echo "Datei wurde nicht gefunden";
    ?*

    */body*
    */html*

    feof

    Die Funktion feof() dient dazu, das Ende einer Datei zu signalisieren.

    Der Parameter gibt den an, welche Datei geprüft werden soll. Dabei muss es sich um den Dateizeiger einer zuvor geöffneten Datei handeln. Hier ist dies $fp.
    Rückgabewert der Funktion ist true, falls das Ende der Datei festgestellt wurde, bzw. false wenn dies nicht der Fall ist.

    Lesen bis zum Ende

    Im Programm wurde eine bedingungsgesteuerte Schleife verwendet. Diese wird wiederholt, solange das Ende der Datei noch nicht erreicht wurde (while (!feof($fp)). Nach dem Lesen einer Zeile durch die Funktion fgets wird der Dateizeiger $fp automatisch auf den Anfang der nächsten Zeile gesetzt.

    Im vorliegenden Fall wurde vorausgesetzt, dass die Datei ug01data.txt mit einem Text-Editor in folgender Weise erzeugt wurde:

    Schreiben der ersten Zeile (¢)
    Schreiben der zweiten Zeile (¢)
    .....
    Schreiben der vorletzten Zeile (¢)
    Schreiben der letzten Zeile (Abspeichern und Schließen der Datei) ohne (¢)

    Falls man nach der letzten Zeile noch einen oder mehrere Zeilenumbrüche erzeugt hat und die Datei anschließend erst gespeichert und geschlossen hat, werden beim Lesen diese unnötigen leeren Zeilen ebenfalls erfasst und können zu Fehlausgaben führen (z. B. falsche Zeilenanzahl).


    // Edit: welder trottel hat das board gebaut?! immer muss man die Tags entschärfen *grml* ich bitte die sternersetzung zu entschuldigen, aber das board hat nur 2 vond en ganzen codezeilen ausgegeben, wie schafft ihr das, dass die tags erhalten bleiben?
     
  10. pcschröder76

    pcschröder76 Megabyte

    Jau, was die Bedienung anbelangt, ist es mit diesem Forum echt bergab gegangen. Und dabei hat vor dem "Umbau" alles, zumindest soweit ich mich erinnere, funktioniert!


    @Aquaba84

    Vielen Dank für die genaue Ausführung. War halt noch nicht so fit was diese ganzen Datei-Operationen anbelangt. Aber Kalweit hat mich (mal wieder) auf den richtigen Pfad geführt.

    Was die Tags anbelangt: Du musst anstelle der &lt; - Klammer & l t ; und für anstelle der &gt; - Klammer & g t; schreiben, allerdings ohne die Leerzeichen, die ich aus verständlichen Gründen einfügen musste...


    mfg

    Michael
     
  11. Aquaba84

    Aquaba84 Kbyte

    das wäre das nächste gewesen was ich versucht hätte... sternchen gingen aber fixer *g*

    aber ma im ernst, in ein board gehört aber syntaxumwandlung eigentlich mit rein... solange sowas nicht ersetzt wird und somit ausm html-code verschindet, kansnte hier sonstewas einbinden, von active x über bannerwerbung bis zu wasweißich

    ich sags ja, liebe pcwelt, tut euch und uns einen gefallen und nehmt das phpbb-board von http://www.phpbb.com
    das is das beliebteste, aus gutem grund, es is schick und bewährt und hat 100de designs und mods
    aber streitet euch ruhig weiter mit eurem board, die user danken es euch *g*
     
  12. pcschröder76

    pcschröder76 Megabyte

  13. Aquaba84

    Aquaba84 Kbyte

    hehe sag ich ja, phpbb *g*

    und da is wieder n fehler, wenn man die url anklickt... sowas darf einfach nicht passieren... aber nungut
    ist wie bei anderen internetseiten, sobald sie für, auch wenns nur teilbereiche sind, geld haben wollen, gehts stets bergab, sieht man ja hier sehr gut...

    denn freies gibts genug, die user suchen sich andere infoquellen, und dann komplett :-) aber nunja müssen sie selber wissen *g*
     
Thread Status:
Not open for further replies.

Share This Page