知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > PHP编程

一个查询、修改单词的界面和后台用XML文件存放单词的php程序

发布时间:2014-09-05 10:23:40作者:知识屋

直接贴代码吧!主要有两个文件,一个查询、修改单词的表单所处的页面。然后另外一个文件用于将单词保存到XML文件中,使用的类是DOMDocument类。这个类就是用于操作XML文件的。
 
 
<head>  <title>test for xml file</title>  <script type="text/javascript">  <!--  function cssShow(){      var b=document.getElementById("sele");      if(b.value==2){          document.getElementById("desc").style.display="none";          document.getElementById("note").style.display="none";      }      else {          document.getElementById("desc").style.display="inline-block";          document.getElementById("note").style.display="inline-block";      }  }  -->  </script>  </head>  <form  action="./test.php" method="post">   word:   <input type="text" size=20 name="word"/><br/>  <span  id="desc">descri: <input type="text" size=20 name="descri"/></span><br/>  <span id="note">note:   <input  type="text" size=20 name="note"/></span><br/>  <select id="sele" name="select" onchange="javascript:cssShow();">  <option value="1" selected="selected">insert</option>  <option value="2">query</option>  </select><br/>  <input type="submit" value="submit"/>  </form>  <?php       header("content-type:text/html;charset=utf-8");      require_once 'xml.class.php';      if(isset($_POST['select'])){          $word=$descri=$note="";          $dom = new XMLOper();          if(isset($_POST['word'])){              $word=$_POST['word'];              $word=strtoupper($word);          }          if(isset($_POST['descri'])){              $descri=$_POST['descri'];          }          if(isset($_POST['note'])){              $note=$_POST['note'];          }          $arr=array($descri,$word,$note);          switch($_POST['select']){              case 1:if(!$dom->checkWord($word)){$dom->xml_insert($arr);$dom->save();echo "successful";}                      else {echo "danci has exist yet!";}exit;              case 2:if(!$dom->checkWord($word)) die("no word in the dbtable");                     $arr=$dom->xml_query($word);                     if($arr[0]==""){                          die("no word in xml");                      }                      echo "result:<br/>word:$arr[0]<br/>descri:$arr[1]<br/>note:$arr[2]";                            }      }  ?>  

 

 
xml.class.php文件如下:
 
<?php  class XMLOper {      private  $dom;      private  $root;      public function __construct(){          $this->dom =new DOMDocument("1.0","utf-8");          $this->dom->formatOutput=true;      }      public function xml_query($word){          $bool=$this->dom->load("test.xml");          if(!$bool)echo "error when load the xml file<br/>";          $arr=array();          $temp=$this->dom->getElementById($word);          $arr[0]=$temp->getElementsByTagName("NAME")->item(0)->nodeValue;          $arr[1]=$temp->getElementsByTagName("DESCRI")->item(0)->nodeValue;          $arr[2]=$temp->getElementsByTagName("NOTES")->item(0)->nodeValue;          return $arr;      }      public function setTextNode($Node,$content){          $Node->appendChild($this->dom->createTextNode($content));      }      public function xml_insert($contentArray){          $arr=array("WORD","DESCRI","NAME","NOTES");          $this->setRootEle("DANCI");          for($j=0;$j<4;$j++){              $tempArr[$j]=$this->dom->createElement($arr[$j]);          }          $word=$this->root->appendChild($tempArr[0]);          for($j=1;$j<4;$j++){              $this->setTextNode($word->appendChild($tempArr[$j]),$contentArray[$j-1]);          }             $word->setAttribute("id", $contentArray[1]);       }      public function setRootEle($name){          $this->root=$this->dom->appendChild($this->dom->createElement($name));      }      public function checkWord($word){          $str=file_get_contents("test.xml");          if(preg_match("/<NAME>".$word."<//NAME>/", $str)==1)return true;          else return false;      }      public function save(){          $this->dom->save("temp.xml");          $fp=fopen("temp.xml", "r+");//不能用w+,要不然文件就会被覆盖,这种方式会覆盖之前写过的信息,而不是插入。          /*下面的一句话就可以让保存的文件的编码设为UTF-8,而文件默认编码方式为ANSI。这一点可以用记事本程序查看文件的编码方式          fwrite($fp,"/xef/xbb/xbf");*/          fwrite($fp, "<?xml ?>");            fgets($fp,200);//第一行字节留有200足够,使文件指针转移到下一行          //fgets($fp,200);          $xml="";          while(!feof($fp)){          $xml.=fread($fp, 1024);          }          $xml.="</TABLE>";          fclose($fp);          $str=file_get_contents("test.xml");          $pattern="/<//TABLE>/";$replacement="";          $str=preg_replace($pattern,$replacement,$str);          file_put_contents("test.xml",$str);          $fp=fopen("test.xml", "a+");                  fwrite($fp,$xml);          fclose($fp);      }  }                    ?>  

 

 
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜