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

wolfy

Elite
Bonjour à tous,

j'aimerais éditer des fichiers html à l'aide d'une page web, mon problème se situe à la lecture et écriture du fichier, mon scritp en PHP ne gère pas correctement les caractères spéciaux, ils apparaissent déformé dans le textArea et s'écrive ensuite déformé dans le fichier.

merci de votre aide

voici mon code:
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));
echo $content;
?>

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;
?>

morceau utile de la page web:
<script type="text/javascript" src="../script/oXHR.js":colere:/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>

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

tqz_

Elite
utf_decode et utf_encode
 
1er
OP
W

wolfy

Elite
merci, ca fonctionne nikel.

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;
?>
 

tqz_

Elite
de rien bon amusement :)
 
Haut