本帖最后由 mingfish 于 2009-09-28 16:33:53 编辑

解决方案 »

  1.   

    高手们写一段嘛,modify.php该怎么写?
      

  2.   

    给你一段ajax实现的代码
    a.html<script type="text/javascript">
    var request=null;
    function createRequest(){
    try{
    request=new XMLHttpRequest();
    } catch(trymicrosoft){
    try{
    request=new ActiveXObject("Msxml2.XMLHTTP");
    } catch(othermicrosoft){
    try{
    request=new ActiveXObject("Microsoft.XMLHTTP");
    } catch(failed){
    request=null;
    }
    }
    } if(request==null)
    alert("Error creating request object");
    }function modify(){
    createRequest();
    var url="modify.php";
    request.open("GET",url,true);
    request.onreadystatechange=updatePage;
    request.send(null);
    }function updatePage(){
    if(request.readyState==4){
    if(request.status==200){
    document.getElementsByTagName("div")[0].innerHTML=request.responseText;
    }
    }
    }
    </script>
    <span>hello</span> 
    <div class="selected"> 
    aaaa </div> 
    <input type="button" onclick="modify()" value="js dom 更新htm文件"/>
    modify.php<?php
    echo "bbbb";
    ?>
      

  3.   

    谢谢TENG0210,我不是这个意思,我是要完全地改写a.html中的代码,就是说点击了按钮后,双击打开a.html,里面的代码都已经是bbbb了。
    你给的这段代码用jquery直接 $(".selected").html("bbbb")就完成了,无需ajax
      

  4.   

    实际上你是想用php修改个html文件?
    1.考虑dom,html一般都严格匹配标签,推荐用这个.
    2.考虑正则,会比较麻烦$dom = new domdocument;
    $html = <<<EOD
    <html><body><span>hello</span><div class="selected">aaaa</div><button>改写该htm文件</button></body></html>
    EOD;
    $dom->loadXML($html);
    $dd = simplexml_import_dom($dom);
    $dd->body->div = "bbbb";
    echo $dom->saveXML();
      

  5.   

    写了modify.php的内容,可以实现你要的功能,拓展性不好,见谅<?php
    //header("Content-type:text/html;Charset=gbk");
    $fp=fopen('a.html','r');
    if($fp){
    $str='';
    while(($tmp=fread($fp,8196))){
    $str.=$tmp;
    }
    fclose($fp);
    $pos=strpos($str,"<div class=\"selected\">");
    $pos+=strlen("<div class=\"selected\">");
    $head=substr($str,0,$pos);
    $pos=strpos($str,"</div>");
    $tail=substr($str,$pos,strlen($str)-$pos);

    $finsh=$head."bbbb".$tail;
    }else{
    echo "error";
    exit;
    }
    $fp=fopen('a.html','w');
    if($fp){
    fwrite($fp,$finsh);
    fclose($fp);
    }else{
    echo "error";
    exit;
    }
    ?>
      

  6.   

    谢谢,大概看的明白,本来打算用js配合正则改写html然后保存的,原来实现起来是这般困难。