一个查询、修改单词的界面和后台用XML文件存放单词的php程序
直接贴代码吧!主要有两个文件,一个查询、修改单词的表单所处的页面。然后另外一个文件用于将单词保存到XML文件中,使用的类是DOMDocument类。这个类就是用于操作XML文件的。
<?phpclass 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);}}?>