一个查询、修改单词的界面和后台用XML文件存放单词的php程序
来源:互联网 发布:苹果怎么软件更新 编辑:程序博客网 时间:2024/06/05 17:02
直接贴代码吧!主要有两个文件,一个查询、修改单词的表单所处的页面。然后另外一个文件用于将单词保存到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文件如下:
<?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);}}?>
- 一个查询、修改单词的界面和后台用XML文件存放单词的php程序
- 由mysql数据库基础上的php程序实现单词的查询、删除、更改和查询
- 一个统计单词的程序
- 一个在文件中搜索单词的程序
- eclipse怎么设置xml和jsp文件选中一个单词后,对应的在整个文件中相同的单词都变亮??
- 一个检查单词个数的程序
- 用C++写的一个数单词个数的程序
- 统计一个文件的单词的个数
- 用C++写的一个单词本程序
- 一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程
- 找到一个单词的所有相似单词
- 这次带来的小程序是:确定一个字符串有多少个单词,然后最长单词和最短单词有哪些
- 利用php实现获取一个文件中一个单词或者字符串出现的次数
- eclipse选中一个单词,其他相同的单词都会高亮显示的颜色修改
- eclipse选中一个单词,其他相同的单词都会高亮显示的颜色修改
- C++ 单词查询程序
- 倒置单词的小程序
- 一个背单词的软件
- 无法读取EXCEL中的数据单元格。有数据,但是读出来全是空值。
- Documentation/filesystems/befs.txt
- C语言混合运算、强制转换盒运算符
- 编程实现 1元,2元,5元,100元纸币组成800元,共有多少种情况。?
- 最大公约数: 最小公倍数
- 一个查询、修改单词的界面和后台用XML文件存放单词的php程序
- 背景图片设置
- from local coordinate coding to local constrained linear coding
- 【转】Bluedroid的结构和代码分布
- 完美解决json循环问题(使用javassist增强):Spring MVC中使用jackson的MixInAnnotations方法动态过滤JSON字段
- Detours使用说明
- 查看一下oracle数据库软件已经安装的组件(视图dba_registry)
- ubuntu12.04 nfs 服务器的配置
- 大学英语六级听力——006(Physical activity)