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