我一直在努力建立一个新闻系统。我正在为每个新闻帖添加标记,如下所示:
$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函数中,因为我不喜欢混合结构和内容。
反馈意见!
答案 0 :(得分:1)
1次快速修复,将$html = file_get_contents('include/html/newspost.html');
移到getMarkup
功能之外。
和另外一个想法,在客户端进行html处理,只需将原始发布数据(json_encode)发送到你的ajax代码,让ajax代码进行处理。
答案 1 :(得分:0)
看起来基本没问题。其他评论家指出的问题确实不是什么大问题。数据库查询比从内存中再次获取文件要慢,并且str_replace的某些位置既不在这里也不在那里。
告诉我们的是AJAX与此有什么关系,而且不清楚你在几个地方谈论的是什么(比如“无法获取PHP文件”)。