构建基于AJAX的新闻系统

时间:2011-05-23 17:49:45

标签: php ajax

我一直在努力建立一个新闻系统。我正在为每个新闻帖添加标记,如下所示:

        $newsArray = array();
        $result = News::getNews($database, 5);

        while($row = mysql_fetch_assoc($result))
              $newsArray[] = new News($row);

        foreach($newsArray as $news)
            echo $news->getMarkup($database);

这是收回我的新闻帖子的有效方式吗?我有一个文件,其中包含我的实际新闻帖子标记,名为newspost.html - 我的getMarkup()函数如下所示:

    public function getMarkup($database) {

        $html = file_get_contents('include/html/newspost.html');

        $find = array("{ID}", "{TITLE}", "{CONTENT}", "{USERNAME}", "{TIME}");
        $replace = array($this->data['news_id'], $this->data['title'], $this->data['content'], $this->data['username'], $this->data['time']);

         for ($i = 0; $i < count($find); ++$i) {
            $html = str_replace($find[$i], $replace[$i], $html);
         }

        return $html;
    }
显然,我无法获取.php文件,所以我必须自己制定解决方案,为每个帖子添加特定的新闻信息。但是,我觉得这是非常低效的。

我希望得到一些关于如何以更优雅的方式解决这个问题的建议。我不想将我的postnews代码直接嵌入到我的PHP函数中,因为我不喜欢混合结构和内容。

反馈意见!

2 个答案:

答案 0 :(得分:1)

1次快速修复,将$html = file_get_contents('include/html/newspost.html');移到getMarkup功能之外。

和另外一个想法,在客户端进行html处理,只需将原始发布数据(json_encode)发送到你的ajax代码,让ajax代码进行处理。

答案 1 :(得分:0)

看起来基本没问题。其他评论家指出的问题确实不是什么大问题。数据库查询比从内存中再次获取文件要慢,并且str_replace的某些位置既不在这里也不在那里。

告诉我们的是AJAX与此有什么关系,而且不清楚你在几个地方谈论的是什么(比如“无法获取PHP文件”)。