" 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

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

" 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.