" becomes " when written to file - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

" becomes " when written to file

mac_doggiemac_doggie Posts: 488Member
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:

[code=pre]
// 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...

";
} else {
echo "Het bestand is opgeslagen.

";
}
// Het origineel overschrijven met de copy
unlink($BestNaam);
rename($BestNaam."_copy",$BestNaam);

[/code]

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:[email protected]
the Netherlands...

Comments

  • mac_doggiemac_doggie Posts: 488Member
    I also noticed that the text   is automaticly changed into a real space...
    ;-)
    -mac-
    mailto:[email protected]
    the Netherlands...


  • genoccajgenoccaj Posts: 10Member
    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:
    :
    : [code=pre]
    : // 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...
    ";
    : } else {
    : echo "Het bestand is opgeslagen.
    ";
    : }
    : // Het origineel overschrijven met de copy
    : unlink($BestNaam);
    : rename($BestNaam."_copy",$BestNaam);
    :
    : [/code]
    :
    : 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:[email protected]
    : the Netherlands...
    :
    :

  • mac_doggiemac_doggie Posts: 488Member
    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:
    : :
    : : [code=pre]
    : : // 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...
    ";
    : : } else {
    : : echo "Het bestand is opgeslagen.
    ";
    : : }
    : : // Het origineel overschrijven met de copy
    : : unlink($BestNaam);
    : : rename($BestNaam."_copy",$BestNaam);
    : :
    : : [/code]
    : :
    : : 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:[email protected]
    : : the Netherlands...
    : :
    : :
    :
    :

    ;-)
    -mac-
    mailto:[email protected]
    the Netherlands...


  • mac_doggiemac_doggie Posts: 488Member
    I also tried stripcslashes and chop but they didn't do what I want either...


    ;-)
    -mac-
    mailto:[email protected]
    the Netherlands...


  • genoccajgenoccaj Posts: 10Member
    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:
    : : :
    : : : [code=pre]
    : : : // 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...
    ";
    : : : } else {
    : : : echo "Het bestand is opgeslagen.
    ";
    : : : }
    : : : // Het origineel overschrijven met de copy
    : : : unlink($BestNaam);
    : : : rename($BestNaam."_copy",$BestNaam);
    : : :
    : : : [/code]
    : : :
    : : : 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:[email protected]
    : : : the Netherlands...
    : : :
    : : :
    : :
    : :
    :
    : ;-)
    : -mac-
    : mailto:[email protected]
    : the Netherlands...
    :
    :
    :

  • mac_doggiemac_doggie Posts: 488Member
    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:
    : : : :
    : : : : [code=pre]
    : : : : // 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...
    ";
    : : : : } else {
    : : : : echo "Het bestand is opgeslagen.
    ";
    : : : : }
    : : : : // Het origineel overschrijven met de copy
    : : : : unlink($BestNaam);
    : : : : rename($BestNaam."_copy",$BestNaam);
    : : : :
    : : : : [/code]
    : : : :
    : : : : 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:[email protected]
    : : : : the Netherlands...
    : : : :
    : : : :
    : : :
    : : :
    : :
    : : ;-)
    : : -mac-
    : : mailto:[email protected]
    : : the Netherlands...
    : :
    : :
    : :
    :
    :

    ;-)
    -mac-
    mailto:[email protected]
    the Netherlands...


  • mac_doggiemac_doggie Posts: 488Member
    The following works fine:

    [code=pre]


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


    [/code]


    but this doesn't:

    [code=pre]


    On-line teksteditor!



    <?
    // 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>
    " ;
    // 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...

    ";
    } else {
    echo "Het bestand is opgeslagen.

    ";
    }
    // 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 "
    ";
    echo "
    ";
    echo "
    ";
    echo "
    ";
    echo "
    ";
    echo "
    ";
    $intTeller = 0;
    while($Blok > $intTeller) {
    $regel = fgets($bestand,1024);
    echo $regel;
    $intTeller++;
    }
    fclose($bestand);
    echo "
    ";
    echo "
    ";
    echo "
    ";
    } else {
    echo "Het bestand kon niet geopend worden...

    ";
    }
    }
    ?>




    [/code]



    ;-)
    -mac-
    mailto:[email protected]
    the Netherlands...


  • mac_doggiemac_doggie Posts: 488Member
    I got it to work alright. I used the stripslashes command.

    [code]
    fputs($file,stripslashes($editor));
    [/code]


    ;-)
    -mac-
    mailto:[email protected]
    the Netherlands...


Sign In or Register to comment.