PHP

Moderators: None (Apply to moderate this forum)
Number of threads: 1847
Number of posts: 5013

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
" becomes \" when written to file Posted by mac_doggie on 22 Jan 2002 at 6:24 AM
Hi,

I have created an on-line texteditor wich lets a user alter a page and then save it to the server. The text is first loaded into the document and is placed in a textarea. I then alter the text and finaly want to save it. I use the following code to do so:

       // Bestanden openen;
       $origineel  = false;
       $copy  = false;
       $pogingen = 0;
       while ((!$origineel) && ($pogingen < 11)){
         // Origineel Bestand openen
         $origineel = fopen ($BestNaam, "r");
         $pogingen += 1; // Aantal pogingen met 1 ophogen
       }
       $pogingen = 0;
       while ((!$copy) && ($pogingen < 11)){
         // Copy Bestand openen
         $copy = fopen ($BestNaam."_copy", "w");
         $pogingen += 1; // Aantal pogingen met 1 ophogen
       }
       if ($origineel && $copy)  {
           // De bestanden zijn beiden open, nu het origineel overnemen tot aan $StartPos;
           $intTeller = 0;
           while($StartPos > $intTeller) {
               $regel = fgets($origineel, 1024);
               fputs($copy,$regel);
               $intTeller++ ;
           }
           // Het eerste ongewijzigde gedeelte is overgenomen, nu het gewijzigde deel overnemen
           // Eerst de \" vervangen door "
           str_replace("\\\"","\"",$editor);
           fputs($copy,$editor);
           // Het gewijzigde gedeelte overslaan in het originele bestand (dus alleen lezen en niets met de info doen...)
           for($intTeller=0;$intTeller < $Blok; $intTeller++) {
               $regel = fgets($origineel,1024);
           }
           // De overgebleven ongewijzigde regels uit het originele bestand overnemen.
           while(!feof($origineel)) {
               $regel = fgets($origineel,1024);
               fputs($copy,$regel);
           }
       }
       $ErrMess1 = fclose($origineel);
       $ErrMess2 = fclose($copy);
       if($ErrMess1 == false || $ErrMess2 == false) {
           echo "Het bestand kon niet worden opgeslagen...<br>\n";
       } else {
           echo "Het bestand is opgeslagen.<br>\n";
       }
       // Het origineel overschrijven met de copy
       unlink($BestNaam);
       rename($BestNaam."_copy",$BestNaam);



This works allright until a text is loaded that contains " signs. It loads allright, but when it is saved the new textfile does not contain " but \" I tried to filter this out by placing the str_replace function but it didn't help. Does anyone know how to solve this ???



<br>
-mac-
mailto:programmersheaven@mac-doggie.nl
the Netherlands...

Report
Re: " becomes \" when written to file Posted by mac_doggie on 22 Jan 2002 at 8:49 AM
I also noticed that the text &nbsp; is automaticly changed into a real space...

-mac-
mailto:programmersheaven@mac-doggie.nl
the Netherlands...


Report
Re: " becomes \" when written to file Posted by genoccaj on 23 Jan 2002 at 11:39 PM
Try using the "stripslashes" function.

: Hi,
:
: I have created an on-line texteditor wich lets a user alter a page and then save it to the server. The text is first loaded into the document and is placed in a textarea. I then alter the text and finaly want to save it. I use the following code to do so:
:
:
:        // Bestanden openen;
:        $origineel  = false;
:        $copy  = false;
:        $pogingen = 0;
:        while ((!$origineel) && ($pogingen < 11)){
:          // Origineel Bestand openen
:          $origineel = fopen ($BestNaam, "r");
:          $pogingen += 1; // Aantal pogingen met 1 ophogen
:        }
:        $pogingen = 0;
:        while ((!$copy) && ($pogingen < 11)){
:          // Copy Bestand openen
:          $copy = fopen ($BestNaam."_copy", "w");
:          $pogingen += 1; // Aantal pogingen met 1 ophogen
:        }
:        if ($origineel && $copy)  {
:            // De bestanden zijn beiden open, nu het origineel overnemen tot aan $StartPos;
:            $intTeller = 0;
:            while($StartPos > $intTeller) {
:                $regel = fgets($origineel, 1024);
:                fputs($copy,$regel);
:                $intTeller++ ;
:            }
:            // Het eerste ongewijzigde gedeelte is overgenomen, nu het gewijzigde deel overnemen
:            // Eerst de \" vervangen door "
:            str_replace("\\\"","\"",$editor);
:            fputs($copy,$editor);
:            // Het gewijzigde gedeelte overslaan in het originele bestand (dus alleen lezen en niets met de info doen...)
:            for($intTeller=0;$intTeller < $Blok; $intTeller++) {
:                $regel = fgets($origineel,1024);
:            }
:            // De overgebleven ongewijzigde regels uit het originele bestand overnemen.
:            while(!feof($origineel)) {
:                $regel = fgets($origineel,1024);
:                fputs($copy,$regel);
:            }
:        }
:        $ErrMess1 = fclose($origineel);
:        $ErrMess2 = fclose($copy);
:        if($ErrMess1 == false || $ErrMess2 == false) {
:            echo "Het bestand kon niet worden opgeslagen...\n";
:        } else {
:            echo "Het bestand is opgeslagen.\n";
:        }
:        // Het origineel overschrijven met de copy
:        unlink($BestNaam);
:        rename($BestNaam."_copy",$BestNaam);
: 
: 

:
: This works allright until a text is loaded that contains " signs. It loads allright, but when it is saved the new textfile does not contain " but \" I tried to filter this out by placing the str_replace function but it didn't help. Does anyone know how to solve this ???
:
:
:
:
: -mac-
: mailto:programmersheaven@mac-doggie.nl
: the Netherlands...
:
:

Report
Re: " becomes \" when written to file Posted by mac_doggie on 24 Jan 2002 at 1:11 AM
I tried, but it didn't work....


: Try using the "stripslashes" function.
:
: : Hi,
: :
: : I have created an on-line texteditor wich lets a user alter a page and then save it to the server. The text is first loaded into the document and is placed in a textarea. I then alter the text and finaly want to save it. I use the following code to do so:
: :
: :
: :        // Bestanden openen;
: :        $origineel  = false;
: :        $copy  = false;
: :        $pogingen = 0;
: :        while ((!$origineel) && ($pogingen < 11)){
: :          // Origineel Bestand openen
: :          $origineel = fopen ($BestNaam, "r");
: :          $pogingen += 1; // Aantal pogingen met 1 ophogen
: :        }
: :        $pogingen = 0;
: :        while ((!$copy) && ($pogingen < 11)){
: :          // Copy Bestand openen
: :          $copy = fopen ($BestNaam."_copy", "w");
: :          $pogingen += 1; // Aantal pogingen met 1 ophogen
: :        }
: :        if ($origineel && $copy)  {
: :            // De bestanden zijn beiden open, nu het origineel overnemen tot aan $StartPos;
: :            $intTeller = 0;
: :            while($StartPos > $intTeller) {
: :                $regel = fgets($origineel, 1024);
: :                fputs($copy,$regel);
: :                $intTeller++ ;
: :            }
: :            // Het eerste ongewijzigde gedeelte is overgenomen, nu het gewijzigde deel overnemen
: :            // Eerst de \" vervangen door "
: :            str_replace("\\\"","\"",$editor);
: :            fputs($copy,$editor);
: :            // Het gewijzigde gedeelte overslaan in het originele bestand (dus alleen lezen en niets met de info doen...)
: :            for($intTeller=0;$intTeller < $Blok; $intTeller++) {
: :                $regel = fgets($origineel,1024);
: :            }
: :            // De overgebleven ongewijzigde regels uit het originele bestand overnemen.
: :            while(!feof($origineel)) {
: :                $regel = fgets($origineel,1024);
: :                fputs($copy,$regel);
: :            }
: :        }
: :        $ErrMess1 = fclose($origineel);
: :        $ErrMess2 = fclose($copy);
: :        if($ErrMess1 == false || $ErrMess2 == false) {
: :            echo "Het bestand kon niet worden opgeslagen...\n";
: :        } else {
: :            echo "Het bestand is opgeslagen.\n";
: :        }
: :        // Het origineel overschrijven met de copy
: :        unlink($BestNaam);
: :        rename($BestNaam."_copy",$BestNaam);
: : 
: : 

: :
: : This works allright until a text is loaded that contains " signs. It loads allright, but when it is saved the new textfile does not contain " but \" I tried to filter this out by placing the str_replace function but it didn't help. Does anyone know how to solve this ???
: :
: :
: :
: :
: : -mac-
: : mailto:programmersheaven@mac-doggie.nl
: : the Netherlands...
: :
: :
:
:


-mac-
mailto:programmersheaven@mac-doggie.nl
the Netherlands...


Report
Re: " becomes \" when written to file Posted by genoccaj on 24 Jan 2002 at 5:49 PM
you might also want to check you server config file.. and check that you have "magic quotes" turned off.. with this on it always adds slashes!

: I tried, but it didn't work....
:
:
: : Try using the "stripslashes" function.
: :
: : : Hi,
: : :
: : : I have created an on-line texteditor wich lets a user alter a page and then save it to the server. The text is first loaded into the document and is placed in a textarea. I then alter the text and finaly want to save it. I use the following code to do so:
: : :
: : :
: : :        // Bestanden openen;
: : :        $origineel  = false;
: : :        $copy  = false;
: : :        $pogingen = 0;
: : :        while ((!$origineel) && ($pogingen < 11)){
: : :          // Origineel Bestand openen
: : :          $origineel = fopen ($BestNaam, "r");
: : :          $pogingen += 1; // Aantal pogingen met 1 ophogen
: : :        }
: : :        $pogingen = 0;
: : :        while ((!$copy) && ($pogingen < 11)){
: : :          // Copy Bestand openen
: : :          $copy = fopen ($BestNaam."_copy", "w");
: : :          $pogingen += 1; // Aantal pogingen met 1 ophogen
: : :        }
: : :        if ($origineel && $copy)  {
: : :            // De bestanden zijn beiden open, nu het origineel overnemen tot aan $StartPos;
: : :            $intTeller = 0;
: : :            while($StartPos > $intTeller) {
: : :                $regel = fgets($origineel, 1024);
: : :                fputs($copy,$regel);
: : :                $intTeller++ ;
: : :            }
: : :            // Het eerste ongewijzigde gedeelte is overgenomen, nu het gewijzigde deel overnemen
: : :            // Eerst de \" vervangen door "
: : :            str_replace("\\\"","\"",$editor);
: : :            fputs($copy,$editor);
: : :            // Het gewijzigde gedeelte overslaan in het originele bestand (dus alleen lezen en niets met de info doen...)
: : :            for($intTeller=0;$intTeller < $Blok; $intTeller++) {
: : :                $regel = fgets($origineel,1024);
: : :            }
: : :            // De overgebleven ongewijzigde regels uit het originele bestand overnemen.
: : :            while(!feof($origineel)) {
: : :                $regel = fgets($origineel,1024);
: : :                fputs($copy,$regel);
: : :            }
: : :        }
: : :        $ErrMess1 = fclose($origineel);
: : :        $ErrMess2 = fclose($copy);
: : :        if($ErrMess1 == false || $ErrMess2 == false) {
: : :            echo "Het bestand kon niet worden opgeslagen...\n";
: : :        } else {
: : :            echo "Het bestand is opgeslagen.\n";
: : :        }
: : :        // Het origineel overschrijven met de copy
: : :        unlink($BestNaam);
: : :        rename($BestNaam."_copy",$BestNaam);
: : : 
: : : 

: : :
: : : This works allright until a text is loaded that contains " signs. It loads allright, but when it is saved the new textfile does not contain " but \" I tried to filter this out by placing the str_replace function but it didn't help. Does anyone know how to solve this ???
: : :
: : :
: : :
: : :
: : : -mac-
: : : mailto:programmersheaven@mac-doggie.nl
: : : the Netherlands...
: : :
: : :
: :
: :
:
:
: -mac-
: mailto:programmersheaven@mac-doggie.nl
: the Netherlands...
:
:
:

Report
Re: " becomes \" when written to file Posted by mac_doggie on 25 Jan 2002 at 2:13 AM
And where would I Find This File.... ????

: you might also want to check you server config file.. and check that you have "magic quotes" turned off.. with this on it always adds slashes!
:
: : I tried, but it didn't work....
: :
: :
: : : Try using the "stripslashes" function.
: : :
: : : : Hi,
: : : :
: : : : I have created an on-line texteditor wich lets a user alter a page and then save it to the server. The text is first loaded into the document and is placed in a textarea. I then alter the text and finaly want to save it. I use the following code to do so:
: : : :
: : : :
: : : :        // Bestanden openen;
: : : :        $origineel  = false;
: : : :        $copy  = false;
: : : :        $pogingen = 0;
: : : :        while ((!$origineel) && ($pogingen < 11)){
: : : :          // Origineel Bestand openen
: : : :          $origineel = fopen ($BestNaam, "r");
: : : :          $pogingen += 1; // Aantal pogingen met 1 ophogen
: : : :        }
: : : :        $pogingen = 0;
: : : :        while ((!$copy) && ($pogingen < 11)){
: : : :          // Copy Bestand openen
: : : :          $copy = fopen ($BestNaam."_copy", "w");
: : : :          $pogingen += 1; // Aantal pogingen met 1 ophogen
: : : :        }
: : : :        if ($origineel && $copy)  {
: : : :            // De bestanden zijn beiden open, nu het origineel overnemen tot aan $StartPos;
: : : :            $intTeller = 0;
: : : :            while($StartPos > $intTeller) {
: : : :                $regel = fgets($origineel, 1024);
: : : :                fputs($copy,$regel);
: : : :                $intTeller++ ;
: : : :            }
: : : :            // Het eerste ongewijzigde gedeelte is overgenomen, nu het gewijzigde deel overnemen
: : : :            // Eerst de \" vervangen door "
: : : :            str_replace("\\\"","\"",$editor);
: : : :            fputs($copy,$editor);
: : : :            // Het gewijzigde gedeelte overslaan in het originele bestand (dus alleen lezen en niets met de info doen...)
: : : :            for($intTeller=0;$intTeller < $Blok; $intTeller++) {
: : : :                $regel = fgets($origineel,1024);
: : : :            }
: : : :            // De overgebleven ongewijzigde regels uit het originele bestand overnemen.
: : : :            while(!feof($origineel)) {
: : : :                $regel = fgets($origineel,1024);
: : : :                fputs($copy,$regel);
: : : :            }
: : : :        }
: : : :        $ErrMess1 = fclose($origineel);
: : : :        $ErrMess2 = fclose($copy);
: : : :        if($ErrMess1 == false || $ErrMess2 == false) {
: : : :            echo "Het bestand kon niet worden opgeslagen...\n";
: : : :        } else {
: : : :            echo "Het bestand is opgeslagen.\n";
: : : :        }
: : : :        // Het origineel overschrijven met de copy
: : : :        unlink($BestNaam);
: : : :        rename($BestNaam."_copy",$BestNaam);
: : : : 
: : : : 

: : : :
: : : : This works allright until a text is loaded that contains " signs. It loads allright, but when it is saved the new textfile does not contain " but \" I tried to filter this out by placing the str_replace function but it didn't help. Does anyone know how to solve this ???
: : : :
: : : :
: : : :
: : : :
: : : : -mac-
: : : : mailto:programmersheaven@mac-doggie.nl
: : : : the Netherlands...
: : : :
: : : :
: : :
: : :
: :
: :
: : -mac-
: : mailto:programmersheaven@mac-doggie.nl
: : the Netherlands...
: :
: :
: :
:
:


-mac-
mailto:programmersheaven@mac-doggie.nl
the Netherlands...


Report
Re: " becomes \" when written to file Posted by mac_doggie on 25 Jan 2002 at 2:25 AM
The following works fine:

<html>
<body>
    <?
      $bestand=fopen("test.txt","w");
      fputs($bestand,"Hello, \"this is a test\"");
      fclose($bestand);
    ?>
</body>
</html>



but this doesn't:

<html>
<head>
  <title>On-line teksteditor!</title>
  <link rel=stylesheet type="text/css" href="stylesheet.css" title="Stylesheet">
</head>
<body>
  <?
       // Parameters
       // $BestNaam = Bestandsnaam
       // $StartPos = eerste regelnr. die gedit mag worden van het bestand.
       // $Blok     = Aantal regels dat in de editor bewerkt kan worden
       // $mode     = Opslaan als er op de opslaan knop wordt geklikt...
       //             hoeft standaard niet ingevuld te worden.
     if($mode=="Opslaan")
     {
       echo "Het bestand wordt opgeslagen....<br>\n" ;
       // Bestanden openen;
       $origineel  = false;
       $copy  = false;
       $pogingen = 0;
       while ((!$origineel) && ($pogingen < 11)){
         // Origineel Bestand openen
         $origineel = fopen ($BestNaam, "r");
         $pogingen += 1; // Aantal pogingen met 1 ophogen
       }
       $pogingen = 0;
       while ((!$copy) && ($pogingen < 11)){
         // Copy Bestand openen
         $copy = fopen ($BestNaam."_copy", "w");
         $pogingen += 1; // Aantal pogingen met 1 ophogen
       }
       if ($origineel && $copy)  {
           // De bestanden zijn beiden open, nu het origineel overnemen tot aan $StartPos;
           $intTeller = 0;
           while($StartPos > $intTeller) {
               $regel = fgets($origineel, 1024);
               fputs($copy,$regel);
               $intTeller++ ;
           }
           // Het eerste ongewijzigde gedeelte is overgenomen, nu het gewijzigde deel overnemen
           // Eerst de \" vervangen door "
           chop($editor);
           fputs($copy,$editor);
           // Het gewijzigde gedeelte overslaan in het originele bestand (dus alleen lezen en niets met de info doen...)
           for($intTeller=0;$intTeller < $Blok; $intTeller++) {
               $regel = fgets($origineel,1024);
           }
           // De overgebleven ongewijzigde regels uit het originele bestand overnemen.
           while(!feof($origineel)) {
               $regel = fgets($origineel,1024);
               fputs($copy,$regel);
           }
       }
       $ErrMess1 = fclose($origineel);
       $ErrMess2 = fclose($copy);
       if($ErrMess1 == false || $ErrMess2 == false) {
           echo "Het bestand kon niet worden opgeslagen...<br>\n";
       } else {
           echo "Het bestand is opgeslagen.<br>\n";
       }
       // Het origineel overschrijven met de copy
       unlink($BestNaam);
       rename($BestNaam."_copy",$BestNaam);
     } else {
         echo "Bewerk het bestand en klik op opslaan." ;
       // if mode != "Opslaan"

       //Bestand openen.
       $bestand  = false;
       $pogingen = 0;
       while ((!$bestand) && ($pogingen < 11)){
         // Bestand openen
         $bestand = fopen ($BestNaam, "r");
         $pogingen += 1; // Aantal pogingen met 1 ophogen
       }
       if ($bestand) {
         // We gaan nu naar $StartPos;
         $intTeller=0;
         while($StartPos > $intTeller) {
           $regel = fgets($bestand,1024);
           $intTeller++;
         }
         // We zijn op de StartPos, nu gaan we de tekst uitlezen en in de textarea plaatsen.
         echo "<form name=\"form1\" action=\"edit.php3\" method=\"post\">\n";
         echo "    <input type=\"hidden\" name=\"mode\" value=\"Opslaan\">\n";
         echo "    <input type=\"hidden\" name=\"BestNaam\" value=\"$BestNaam\">\n";
         echo "    <input type=\"hidden\" name=\"StartPos\" value=\"$StartPos\">\n";
         echo "    <input type=\"hidden\" name=\"Blok\" value=\"$Blok\">\n";
         echo "    <textarea name=\"editor\" cols=\"$cols\" rows=\"$rows\">\n";
         $intTeller = 0;
         while($Blok > $intTeller) {
           $regel = fgets($bestand,1024);
           echo $regel;
          $intTeller++;
         }
         fclose($bestand);
         echo "</textarea>\n";
         echo "    <input type=\"submit\" value=\"Opslaan\">\n";
         echo "  </form>\n";
       } else {
         echo "<font color=red>Het bestand kon niet geopend worden...<br></font>\n";
       }
   }
  ?>

</body>
</html>






-mac-
mailto:programmersheaven@mac-doggie.nl
the Netherlands...


Report
Re: " becomes \" when written to file Posted by mac_doggie on 24 Jan 2002 at 1:20 AM
I also tried stripcslashes and chop but they didn't do what I want either...



-mac-
mailto:programmersheaven@mac-doggie.nl
the Netherlands...


Report
And finally the solution Posted by mac_doggie on 10 Sept 2002 at 12:41 AM
I got it to work alright. I used the stripslashes command.

      fputs($file,stripslashes($editor));




-mac-
mailto:programmersheaven@mac-doggie.nl
the Netherlands...





 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.