Probleme mit fwrite

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

  • Probleme mit fwrite

    Ich möchte mittels fwrite folgenden String (incl. XML undPHP Code) in eine Datei schreiben:

    <?php
    $f_confxml = <<<XML
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <document>
    <title>Startseite</title>
    <edit>yes</edit>
    </document>
    XML;
    ?>
    <?php if(!$f_showcontent){ ?>
    <?php include_once($_SERVER["DOCUMENT_ROOT"] . "/formundfarbe/fLib/fHead.php"); ?>
    <?php if(fUserPermission()){ ?>
    Mahallo
    <?php } ?>
    <?php include_once($_SERVER["DOCUMENT_ROOT"] . $f_folder . "/fLib/fFoot.php"); ?>
    <?php } ?>
    Und das wurde dann in die Datei geschrieben:

    <?php
    $f_confxml = <<<XML
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <document>
    <title></title>
    <edit>yes</edit>
    </document>
    XML;
    ?>
    <?php if(!$f_showcontent){ ?>
    <?php include_once($_SERVER["DOCUMENT_ROOT"] . "/formundfarbe/fLib/fHead.php"); ?>
    <?php if(fUserPermission()){ ?>
    <?php } ?>
    <?php include_once($_SERVER["DOCUMENT_ROOT"] . $f_folder . "/fLib/fFoot.php"); ?>
    <?php } ?>
    Im XML Code fehlt jeweils der Inhalt des Elementes "<title>" und die 4. letzte Zeile des PHP Codes.
    Kann es sein, das fwrite nicht mit den vielen Sonderzeichen zurecht kommt? Oder gibt es eine andere Möglichkeit als fwrite?

    Ich benutze XAMPP 1.6.0a mit Apache 2.2.4 und PHP 4.4.5 auf Windows XP.


    Schonmal vielen Dank für eure Hilfe

  • #2
    wie bitte hast du denn diesen string eingeschlossen. doch sicher mit hochkommata, oder?

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

    Kommentar


    • #3
      anscheinend hast du beim schreiben etwas vermurskt. zeig mal.

      Kommentar


      • #4
        Mit
        PHP-Code:
        error_reporting(E_ALL); 
        kommen keine Fehlermeldungen ?

        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


        • #5
          Also der obere Quote ist der String ausgegeben über echo, und der untere Quote ist das Resultat, wenn ich die gleiche Variable mit fwrite in die Datei schreibe.

          error_reporting(E_ALL); bringt keine entsprechende Fehlermeldung...


          EDIT:

          PHP-Code:
          echo $f_newcode;

          fSaveFile($f_newfile$f_newcode);

          function 
          fSaveFile($file$code){
              
          $handle fopen($_SERVER["DOCUMENT_ROOT"] . $file"w");
              
          fwrite($handle$code);
              
          fclose($handle);

          Zuletzt geändert von Luc; 08.05.2007, 13:44.

          Kommentar


          • #6
            na dann zeig doch mal, wie du schreibst. und vorher die variablenbelegung. und die testausgabe des zu schreibenden strings.

            Kommentar


            • #7
              Ok, ist von mehreren includes, aber das sollte ja keinen unterschied machen:

              PHP-Code:
              <?php
              $f_newcode 
              fCreateFileCode($f_newxmlstr$f_newcontent); // damit wird der Code in die Variable $f_newcode übergeben
              echo $f_newcode;  // testausgabe der Variable, alles tiptop s. Quote 1

              fSaveFile($f_newfile$f_newcode); // Speichern des Files, s. Quote 2

              echo $f_newxml->title;


              function 
              fCreateFileCode($xmlstr$content){
                  
              $nl "\n";
                  
              $code '<?php'
                  
              $nl '$f_confxml = ' "<<<XML{$nl}{$xmlstr}XML;"
                  
              $nl '?>'
                  
              $nl '<?php if(!$f_showcontent){ ?>'
                  
              $nl '<?php include_once($_SERVER["DOCUMENT_ROOT"] . "/formundfarbe/fLib/fHead.php"); ?>'
                  
              $nl '<?php if(fUserPermission()){ ?>'
                  
              $nl $content '<?php } ?>'
                  
              $nl '<?php include_once($_SERVER["DOCUMENT_ROOT"] . $f_folder . "/fLib/fFoot.php"); ?>'
                  
              $nl '<?php } ?>';

                  return 
              $code;
              }


              function 
              fSaveFile($file$code){
                  
              $handle fopen($_SERVER["DOCUMENT_ROOT"] . $file"w");
                  
              fwrite($handle$code);
                  
              fclose($handle);
              }
              ?>
              Wie gesagt, zuerst wird alles tiptop ausgegeben wie es sein soll.

              Kommentar


              • #8
                lass dir nochmal innerhalb von fSaveFile noch mal $code ausgeben. immer noch alles i.o.?

                Kommentar


                • #9
                  Gute Idee.
                  Aber leider wird der Code immernoch korrekt ausgegeben, müsste also doch etwas mit fwrite zu tun haben...

                  Kommentar


                  • #10
                    öffne mal die datei mit "wb" statt "w".

                    Kommentar


                    • #11
                      Hm, auch nichts...

                      Kommentar


                      • #12
                        dann existiert das problem woanders, der code ist lauffähig und richtig.

                        Kommentar


                        • #13
                          also, ein:
                          PHP-Code:
                          $nl = "\r\n";
                          $xmlstr = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                          <document>
                          <title>Startseite</title>
                          <edit>yes</edit>
                          </document>';
                          $content = 'Mahallo';

                          $code = '<?php'
                          . $nl . '$f_confxml = ' . "<<<XML{$nl}{$xmlstr}XML;"
                          . $nl . '?>'
                          . $nl . '<?php if(!$f_showcontent){ ?>'
                          . $nl . '<?php include_once($_SERVER["DOCUMENT_ROOT"] . "/formundfarbe/fLib/fHead.php"); ?>'
                          . $nl . '<?php if(fUserPermission()){ ?>'
                          . $nl . $content . '<?php ?>'
                          . $nl . '<?php include_once($_SERVER["DOCUMENT_ROOT"] . $f_folder "/fLib/fFoot.php"); ?>'
                          . $nl . '<?php ?>';

                          $open = fopen ('bla.txt',"w");
                          fwrite ($open, $code);
                          fclose ($open);
                          funktioniert bei mir einwandfrei.

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

                          Kommentar


                          • #14
                            Woran könnte es den noch liegen? Geht fwrite irgendwie anders mit dem String um?

                            EDIT: Hm, dann muss es irgendwie mit XAMPP ein Problem sein. Habs zwar extra noch auf einem anderem PC probiert, aber auf dem ist halt auch XAMPP installiert.

                            Kommentar


                            • #15
                              dann lass doch mal peters code laufen. klappts dann?

                              Kommentar

                              Lädt...
                              X