内容随便改就行了,我只是随便复制了一段带HTML的代码进行测试,不过函数可能考虑的多了点长了些,我的思路是通过match和split返回两数组,再拼成的,里面一段是防止 等这样的符号被替换了,不过我又发现了个问题,就是如果需要替换的关键字有<font color="#ff0000"></font>里面的字符又会有问题了,不过这都是小问题,关键是IE回错乱位置,返回的结果个预期的差太多了,我测试了FF和OPERA都没出现任何问题的,纳闷了,不过挺感谢你的关注的,楼下继续吧...
调试欢乐多
header("Cache-Control: no-cache, must-revalidate"); <br />
header('Content-type: text/html;charset=utf-8'); <br />
if(strip_tags($_GET['action'])=='read') <br />
{ <br />
//读取文件 <br />
echo nl2br(file_get_contents("demo.txt")); <br />
}else{ <br />
//写入文件 <br />
$content=$_POST['content']; <br />
file_put_contents('demo.txt',$content); <br />
echo nl2br(file_get_contents("demo.txt")); <br />
} <br />
?></p>
<p>2。下面这个是ajax.htm代码:</p>
<p><script language="javascript"> <br />
//创建AJAX <br />
function initxmlhttp() <br />
{ <br />
var xmlhttp <br />
try { <br />
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); <br />
} catch (e) { <br />
try { <br />
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); <br />
} catch (E) { <br />
xmlhttp=false; <br />
} <br />
} <br />
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { <br />
try { <br />
xmlhttp = new XMLHttpRequest(); <br />
} catch (e) { <br />
xmlhttp=false; <br />
} <br />
} <br />
if (!xmlhttp && window.createRequest) { <br />
try { <br />
xmlhttp = window.createRequest(); <br />
} catch (e) { <br />
xmlhttp=false; <br />
} <br />
} <br />
return xmlhttp; <br />
} <br />
//从文本文件中读取文件并且显示 <br />
function readText() <br />
{ <br />
var readButton=document.getElementById('read'); <br />
var showcontent=document.getElementById('content'); <br />
readButton.disabled="disabled"; <br />
showcontent.innerHTml='正在读取,Loading…..'; <br />
var xmlhttp=initxmlhttp(); <br />
var url="operation.php?action=read"; <br />
xmlhttp.open("GET",url,true); <br />
xmlhttp.onreadystatechange=function(){</p>
<p> if(xmlhttp.readyState==4 && xmlhttp.status==200) <br />
{ </p>
<p> showcontent.innerHTML=xmlhttp.responseText; <br />
readButton.disabled=""; <br />
document.getElementById('edit').disabled=""; <br />
} <br />
} <br />
xmlhttp.send(null); <br />
} <br />
//转换到编辑模式 <br />
function edit() <br />
{ <br />
document.getElementById('edit').disabled="disabled"; <br />
var str=''; <br />
str+='<textarea name="textContent" cols="50" rows="8" id="textContent">'; <br />
str+='</textarea>'; <br />
document.getElementById('content').innerHTML=str; <br />
document.getElementById('update').disabled=""; <br />
} <br />
//更新数据到文本文件 <br />
function update() <br />
{ <br />
var xmlhttp=initxmlhttp(); <br />
var url="operation.php?action=write"; <br />
var data="content="+document.all.textContent.value; <br />
xmlhttp.open("POST",url,true); <br />
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); <br />
xmlhttp.send(data); <br />
xmlhttp.onreadyStatechange=function(){ <br />
if(xmlhttp.readyState==4 && xmlhttp.status==200) <br />
{ <br />
document.getElementById('content').innerHTML=xmlhttp.responseText; <br />
document.getElementById('update').disabled="disabled"; <br />
} <br />
} <br />
} <br />
</script> <br />
<body> <br />
<div class="main-box"> <br />
<div class="head-dark-box">AJAX+PHP读取更新文本文件</div> <br />
<div class="body-box"> <br />
<div class="tip-msg">一个简单的AJAX演示。主要功能有 :<br /> <br />
1、读取文本文件并显示。<br /> <br />
2、更新文本文件。 <br />
</div> <br />
<div class="alt-table" ><br /> <br />
<input id="read" name="read" type="button" class="button" value="读取" onclick="readText()" /> <br />
<input id="edit" disabled="disabled" name="edit" type="button" class="button" value="编辑" onclick="edit()" /> <br />
<input id="update" disabled="disabled" name="update" type="button" class="button" value="更新" onclick="update()" /> <br />
<div id="content" class="textbox-title"></div> <br />
</div> <br />
</div> <br />
</div> <br />
</body></p>
</div>问题就很明显了,住要是看HTML标记和它的内容的错位,别的还好