[PHP/HTML] file to textarea / textarea 2 file

Résolu/Fermé
wolfy - Modifié par wolfy le 29/12/2011 à 14:37
 wolfy - 29 déc. 2011 à 19:41
Bonjour à tous,

j'aimerais éditer des fichiers html à l'aide d'une page web, mon principale problème se situe à l'écriture du fichier, mon scritp en PHP n'écrit pas correctement les balises HTML, en fait :

<p class=\"titre_grand\">BRIS DE GLAGE lol</p>
devient:
& lt; p class=\ & quot;titre_grand \& quot; & gt;BRIS DE GLAGE lol & lt;/p & gt;

voici mon code:
file_to_text.php:
<?php
header("Content-Type: text/plain");
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
echo html_entity_decode(file_get_contents($file));
?>

text_to_file.php:
<?php
header("Content-Type: text/plain");
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
$content = (isset($_GET["content"])) ? $_GET["content"] : NULL;
$content = htmlentities($content);
$fh = fopen($file, 'w') or die("can't open file");
fwrite($fh, $content);
fclose($fh);
echo 1;
?>

morceau utile de la page web:
<script type="text/javascript" src="../script/oXHR.js"></script>
<script type="text/javascript">
function readFile(fileTemp)
{
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
document.getElementById("textArea").value = xhr.responseText;
}
};
xhr.open("GET", "../script/file_to_text.php?file=" + fileTemp, true);
xhr.send(null);
}

function changeFile(file)
{
var xhr = getXMLHttpRequest();
var content = document.getElementById("textArea").value;
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
if(xhr.responseText == 1)
{
document.getElementById("textArea").value = "";
file = '';
return;
}
else
{
alert('erreur');
return;
}
}
};
xhr.open("GET", "../script/text_to_file.php?file=" + file + "&content=" + content, true);
xhr.send(null);
}
</script>
Charger la page :
<select id="mymenu">
<option value="index.html">Accueil</option>
<option value="bris_de_glace.html">Bris de glace</option>
<option value="changement_de_serrure.html">Changement de serrure</option>
<option value="depannage.html">Dépannage</option>
<option value="norme_A2P.html">Norme A2P</option>
<option value="tarif.html">Tarif</option>
<option value="vitrerie.html">Vitrerie</option>
</select>

<script type="text/javascript">
var selectmenu=document.getElementById("mymenu")
selectmenu.onchange=function(){ //run some code when "onchange" event fires
var chosenoption=this.options[this.selectedIndex] //this refers to "selectmenu"
if (chosenoption.value!="nothing")
{
file = "../data/" + chosenoption.value;
readFile("../data/" + chosenoption.value); //open target site (based on option's value attr) in new window
}
}
</script>

<hr align="center" width="50%" color="midnightblue" size="4">
<textarea style=" WIDTH: 700px; height:400px;" id="textArea">
Polices, Couleurs ...
</textarea>
<br>
<button type="button" onclick="JavaScript: changeFile(file);">Changer</button>
<button type="button" onclick="JavaScript: document.getElementById('textArea').value =''; file='';">Reset</button>
A voir également:

2 réponses

Nxl Messages postés 1038 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 5 janvier 2017 133
29 déc. 2011 à 14:41
Déjà tu ne devrait pas utiliser des ternaires...
donc :
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
$content = (isset($_GET["content"])) ? $_GET["content"] : NULL;

j'en oublie mais il faut déjà coder tout ça avec des conditions "normal" if et else.
sinon je comprend pas ton début de message :
<p class=\"titre_grand\">BRIS DE GLAGE lol</p>
devient:
<p class=\"titre_grand\">BRIS DE GLAGE lol</p>
=> elle sont identiques !
0
j'ai modifié, il y avait une erreur dans l'affichage
0
J'ai trouvé la solution sur un autre forum.

voila le code modifié si quelqu'un cherche:

text_to_file.php
<?php
header("Content-Type: text/plain");
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
$content = (isset($_GET["content"])) ? $_GET["content"] : NULL;
$content = html_entity_decode($content);
$content = str_replace('\"', '"', $content);
$fh = fopen($file, 'w') or die("can't open file");
fwrite($fh, $content);
fclose($fh);
echo 1;
?>

file_to_text.php
<?php
header("Content-Type: text/plain");
$file = (isset($_GET["file"])) ? $_GET["file"] : NULL;
$content = html_entity_decode(file_get_contents($file));
$content = utf8_encode($content);
echo $content;
?>
0