麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
雄鹰国际php+xml留言簿(学习版)
悬赏分:20 - 2007年08月15日

如果版主觉得这篇文章可以,请帮我置顶,在此感谢了![/COLOR] <?php /* 程序运行环境:IIS5.0+PHP5.0.0(PHP低于这个版本将无法运行) 程序文件名随便命名,XML文件由程序第一次运行时自动生成 在免费使用本程序时,请勿必保留以下版权信息,绝不会因此而影响程序运行速度 程序编写:2004年9月19日18时于湖南科技大学学工处 作 者:孤芳翔鹰(蒋赞) 联系OICQ:9970143 个人站点:http://www.21xml.com [世纪XML网](因时间与学习原因,目前无法内容空缺) http://www.6428.com [商务网站] 电子邮箱:webmaster@6428.com 初成立的雄鹰国际工作室 立誓争创国际一流工作室 相关说明: 本人对PHP语言并不能算精通,只能说是掌握了这门语言,由于我自己对XML有非常大的 爱好,同时完全掌握了ASP/JS/VBS对XML的操作,所以在一年之前我就曾经试图采用PHP与Perl来操作XML 但是最终花费了大量时间到头来编出来的程序都是一些简单的解析XML功能,对XML操作完全处于文本操作层次 由于PHP5.0的发布,终于使得PHP能够对XML脱离文本进行操作了,花费了我三天的时间到处找PHP操作XML的相关 文章,而收获甚少。在基本处于对PHP与XML操作功能掌握不甚深的时候,奉上我给大家一份小礼物(PHP+XML留言簿)吧。 附加说明: 1、这个PHP+XML留言簿基本实现了留言簿的所有功能; 2、无分页功能,分页功能很简单,大家自己可以增加相关代码;也可以利用JS来显示所以留言并对留言进行分页; JS调用XML及分页功能,可以参考如下网页:http://www.21xml.com/technology/item.htm?ID=10 3、由于PHP对XML的子节点值获取并不尽人意(可能本人知识浅薄,没有学到其知识) 所以在获取子节点值的时候,我使用了foreach语句,foreach并不能完全让人接纳; 4、同时在对子节点进行编辑的时候,无法精确定位,所以我也只好采用foreach与数组定位; (这样的做法我也是迫不得以的,只因目前参考资料太少了,只能等些日子,或许我还会有新的发现哦) 5、由于本人经常编写ASP的习惯,程序风格完全基于VBS模式,不足之处望大家指教; 顺便说一声,如果大家有Perl操作XML与C操作XML相关资料不防给我寄发一份,在此谢谢大家了! XML正在关注 未来在我们手中 (Focusing.......) 最后再说一句:我在2003年6月份发布了雄鹰国际ASP+XML留言簿,发布之后立及有人改了版权,冒充是自己编写的 希望大家尊重一下别人的劳动成果,我们学生编写一个好的程序不容易,宣传自己的网站更不容易。 改进程序无所谓,但是完全将版权给改了,那就不能让俺高兴哦!^_^^_^ 如果大家还有什么不懂的地方,可以加我的QQ(9970143),或者访问一个未完成的世纪XML网 http://www.21xml.com */ ?> 雄鹰国际PHP+XML留言簿(学习版) <?php class StudyXML extends DOMDocument { private $Root; public function __construct() { parent:: __construct(); if (!file_exists("message.xml")) { $xmlstr = "<?xml version='1.0' encoding='GB2312'?><www.21xml.com>"; $this->loadXML($xmlstr); $this->save("message.xml"); } else $this->load("message.xml"); } public function Append($Subject,$Content) { $Root = $this->documentElement; $AutoID =date("Ynjhis"); $NAutoID = $this->createElement("autoid"); $text = $this->createTextNode(iconv("GB2312","UTF-8",$AutoID)); $NAutoID->appendChild($text); $NSubject = $this->createElement("subject"); $text = $this->createTextNode(iconv("GB2312","UTF-8",$Subject)); $NSubject->appendChild($text); $NContent = $this->createElement("content"); $text = $this->createTextNode(iconv("GB2312","UTF-8",$Content)); $NContent->appendChild($text); $Rs = $this->createElement("rs"); $Rs->appendChild($NAutoID); $Rs->appendChild($NSubject); $Rs->appendChild($NContent); $Root->appendChild($Rs); $this->save("message.xml"); echo "<script>alert('添加成功');location.href='".$_SERVER['PHP_SELF']."'</script>"; } public function Delete($AutoID) { $Root = $this->documentElement; $xpath = new DOMXPath($this); $Rs= $xpath->query("//rs[autoid=$AutoID]"); $Root->removeChild($Rs->item(0)); $this->save("message.xml"); echo "<script>alert('删除成功');location.href='".$_SERVER['PHP_SELF']."'</script>"; } public function ListMsg() { $Root = $this->documentElement; $xpath = new DOMXPath($this); $Rs = $this->getElementsByTagName("rs"); $Rs_Length =$Rs->length; for($i=0;$i<$Rs->length;$i++) { /* 获取各字段值 下面的foreach语句使用得不尽人意,但是没有办法,PHP的XML操作技术文章目前很少,我凭借自己对ASP操作XML文件的掌握程度 花了上10个小时才弄成为foreach实现字段提取功能,期待以后我的新发现了,哈哈 提醒大家,其实XML文件的显示都可以直接使用JS或VBS的,只是在此为了大家学习,才使用PHP来直接显示XML文件的内容 */ $K=0; foreach ($Rs->item($i)->childNodes as $articles) { $Field[$K]=iconv("UTF-8","GB2312",$articles->textContent); $K++; } print ""; } } public function Modify($AutoID) { $Root = $this->documentElement; $xpath = new DOMXPath($this); $Rs = $xpath->query("//rs[autoid=$AutoID]"); $K=0; foreach ($Rs->item(0)->childNodes as $articles) { $Field[$K]=iconv("UTF-8","GB2312",$articles->textContent); $K++; } print ""; print ""; print ""; print ""; } public function SaveEdit($AutoID,$Subject,$Content) { $Root = $this->documentElement; $xpath = new DOMXPath($this); $Rs = $xpath->query("//rs[autoid=$AutoID]"); $Replace[0]=$AutoID; $Replace[1]=$Subject; $Replace[2]=$Content; $K=0; foreach ($Rs->item(0)->childNodes as $articles) { //$Field[$K]=iconv("UTF-8","GB2312",$articles->textContent); $newText = $this->createTextNode(iconv("GB2312","UTF-8",$Replace[$K])); $articles->replaceChild($newText,$articles->lastChild); $K++; } echo "<script>alert('修改成功');location.href='".$_SERVER['PHP_SELF']."'</script>"; $this->save("message.xml"); } public function PostMsg() { print ""; print ""; print ""; print ""; } } $HawkXML = new StudyXML; switch($Action) { case "": case "ListMsg": $HawkXML->ListMsg(); break; case "PostMsg": $HawkXML->PostMsg(); break; case "Append": $HawkXML->Append($_POST['Subject'],$_POST['Content']); break; case "Delete": $HawkXML->Delete($AutoID); break; case "Modify": $HawkXML->Modify($AutoID); break; case "SaveEdit": $HawkXML->SaveEdit($AutoID,$_POST['Subject'],$_POST['Content']); break; } ?>
雄鹰国际PHP+XML留言簿(学习版)
发表留言〗〖显示留言
"; print "留言标题:$Field[1]
留言内容:
    $Field[2]\n"; print "
留言标题:
留言内容:
    
留言标题:
留言内容:
    

提问者:孤芳翔鹰   08-15 08:08
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
33 + 36 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM