探讨一道面试题目?

zhengbin_007 2006-12-25 09:58:19
1、内容:做一个简易留言板系统。

2、要求:必须应用到以下技术

a、XML:用于保存留言内容。//遇到点小问题/

b、Smarty:采用页面模板,对界面设计没有要求。//已解决

c、Ajax:无需刷新页面即可提交数据和调整页面显示内容,建议使用开源代码Xajax。 //查了点资料,要在smarty下使用xajax.并结合读取xml文档时显示出内容同时.实现无刷新是吧...

d、FCKeditor:作为留言板内容编辑框。//已解决



XML:用于保存留言内容//每次都有人发表留言..都要提交上来内容.我用PHP生成XML文档时,遇到缺少根节点,
我实在无法解决..我搜索了一些资料,大部份都是PHP读取xml的,但是像这样PHP生成XML文档,应当怎样解决?
我现在是(如下)这样做,但是缺少 根节点....请问高手我这样的思路有没有正确,郁闷了好几天.这样的问题怎样解决..
messages.xml文档
<?xml version="1.0" encoding="gb2312"?>
------------------------------------------
upload.php
----------------------------
$nl=chr(13).chr(10); //回车换行符
$title=$_POST['title'];
$author=$_POST['author'];
//$Content=$oFCKeditor->Value;

$Content=$_POST['EditorDefault'];
//echo $Content;

//$Content=$_POST['EditorDefault'];
$xmlfile.="<message>".$nl;
$xmlfile.="<title>".$title."</title>".$nl;
$xmlfile.="<author>".$author."</author>".$nl;
$xmlfile.="<content>".$Content."</content>".$nl;
$xmlfile.="</message>".$nl;

$fp=fopen("messages.xml","a+");

fwrite($fp,$xmlfile);

@fclose($fp);
---------------------------

这样生成的messages.xml文档如下:

<?xml version="1.0" encoding="gb2312"?>
<message>
<title>2323</title>
<author>23232</author>
<content>23232</content>
</message>
<message>
<title>1243214</title>
<author>23421</author>
<content>234243124</content>
</message>
...全文
494 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
mgarfield 2007-04-15
  • 打赏
  • 举报
回复
fseek -- 在文件指针中定位
zeroleonhart 2007-04-15
  • 打赏
  • 举报
回复
建议楼主先把xml和dom了解一下,这个东西不难的
freedom_1016 2007-04-14
  • 打赏
  • 举报
回复
题目是不难,要完成好它也不容易,会做得出。说明不错了。。
deerfhqmilu 2007-04-14
  • 打赏
  • 举报
回复
题目不难。。。。。。。?
willko 2007-04-13
  • 打赏
  • 举报
回复
除了smarty外。其他都不是問題。。
但是要點時間。。
my_web 2007-04-13
  • 打赏
  • 举报
回复
你是强人,这东西一般人面试哪一个小时是搞不定的
zhengbin_007 2007-04-13
  • 打赏
  • 举报
回复
突然发现以前的这个贴子,很简单。。技术正在进步中。。。呵。。。。
zhengbin_007 2006-12-27
  • 打赏
  • 举报
回复
$title=trim($_POST['title']);
$author=trim($_POST['author']);
$Content=$_POST['EditorDefault'];
$messages=array();
$messages[] = array(
"title" => "$title",
"author" => "$author",
"content" => "$Content"
);


$doc = new DOMDocument(); //创建DOM对象
$doc->formatOutput = true;

$r = $doc->createElement( "messages" ); //建立根节点
$doc->appendChild( $r );

foreach( $messages as $message )
{
$b = $doc->createElement( "message" ); //

$title = $doc->createElement( "title" ); //建立子节点title
$title->appendChild(
$doc->createTextNode( $message['title'] )
);
$b->appendChild( $title );

$author = $doc->createElement( "author" ); //建立子节点author
$author->appendChild(
$doc->createTextNode( $message['author'] )
);
$b->appendChild( $author);

$content = $doc->createElement( "content" ); //建立子节点content
$content->appendChild(
$doc->createTextNode( $message['content'] )
);
$b->appendChild( $content );

$r->appendChild( $b );
}

echo $doc->saveXML();



//以上为用DOM生成的xml,我可以在IE里显示出来,值为: 7777 77777
查看源文件为如下:那怎么不显示77 而显示7777 77777

<?xml version="1.0"?>
<messages>
<message>
<title>77</title>
<author>7777</author>
<content>77777</content>
</message>
</messages>



我现在想把这个xml文档保存下来,请问高手怎么做.
值是由表单提交过来的,还有表单要是再输入值的话,会覆盖掉原来的内容..要每次提交的内容都生成在</message>后面...如:
<?xml version="1.0"?>
<messages>
<message>
<title>77</title>
<author>7777</author>
<content>77777</content>
</message>
<message> //第二次提交的内容
<title>55</title>
<author>555</author>
<content>5555</content>
</message>
</messages>
zhengbin_007 2006-12-27
  • 打赏
  • 举报
回复
zhenbinabk@163.com

//谢谢
MAD_FROG 2006-12-27
  • 打赏
  • 举报
回复
留下你的email地址我传给你一个.
zhengbin_007 2006-12-25
  • 打赏
  • 举报
回复
是不难...帮忙搞定啊..我很郁闷..好几天了.会的话.帮写一下..小弟不胜感激...呵
YT7260 2006-12-25
  • 打赏
  • 举报
回复
题目不难。。。。。。。
zhengbin_007 2006-12-25
  • 打赏
  • 举报
回复
$xmlfile.="<messages>.$nl;
$xmlfile.="<message>".$nl;
$xmlfile.="<title>".$title."</title>".$nl;
$xmlfile.="<author>".$author."</author>".$nl;
$xmlfile.="<content>".$Content."</content>".$nl;
$xmlfile.="</message>".$nl;
$xmlfile.="</messages>".$nl;

$fp=fopen("messages.xml","a+");

fwrite($fp,$xmlfile);

@fclose($fp);
---------------------------

//这样生成的应该是标准的xml文档...如下:
<?xml version="1.0" encoding="gb2312"?>
<messages>
<message>
<title>2323</title>
<author>23232</author>
<content>23232</content>
</message>
</messages>


那我现在的疑问是,留言数据都保存在messages.xml 每次提交留言后,又会生成一样的,怎样避免
重复生成根节点..php又能读取xml文档?不知道有没有好的方法?大家又都是怎么做的.
懒得去死 2006-12-25
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="gb2312"?>
<message>
<title>2323</title>
<author>23232</author>
<content>23232</content>
</message>
<message>
<title>1243214</title>
<author>23421</author>
<content>234243124</content>
</message>

这个不是标准XML格式
caotian2000 2006-12-25
  • 打赏
  • 举报
回复
标准是应该有一个根节点
zhengbin_007 2006-12-25
  • 打赏
  • 举报
回复
就是啊..应该怎么加..又不会重复根节点..并且可以使得php能循环读取xml...

请问大家遇到这样的问题是怎么做的...
willko 2006-12-25
  • 打赏
  • 举报
回复
XML没有根节点
zhengbin_007 2006-12-25
  • 打赏
  • 举报
回复
用Dom库生成是吗。。。php5版本都支持这个吧。。
helloyou0 2006-12-25
  • 打赏
  • 举报
回复
既然用xml,不建议用处理普通文本的方式生成xml文件,用dom等处理.
如果用也可以,但是生成的文件当然要符合规范.你的文件只要外面
加上一个<messages>节点就可以了.
要追加的话,可以让文件指针往回移动后再写入.
或者用替换也可以.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧