gpt4 book ai didi

php - 关于DomDocument效率的问题

转载 作者:行者123 更新时间:2023-11-29 03:45:29 25 4
gpt4 key购买 nike

注意:这是我正在做的练习。

我有一个 php 程序,它使用 DomDocument 修改 html 文档;通过按 ID 插入、删除或编辑元素。程序完成后,它会输出文档供用户查看。

包含插入值的 SQL 表仅被排序/用于提供应该在新元素之前的元素。例如根据指定的列值,找到新元素之前的元素,并在其后插入新元素。

基本上我要问的是,与将所有元素存储在数据库中然后每次都重新创建(各种)html 文件相比,这种方法的效率如何。

附带问题:我想保存每个元素的“历史”。我应该为每个特定元素(例如 a234-history)创建一个新表还是有更好的方法来解决这个问题?

编辑:

代码片段:

警告;前面的意大利面条代码。

    if ($sortby=='newest')
$query2=mysql_query("SELECT comnum FROM comments WHERE replynum='$x' AND newest < '$new' ORDER BY newest DESC LIMIT 1");
else
$query2=mysql_query("SELECT comnum FROM comments WHERE replynum='$x' AND popularity < '$random' ORDER BY popularity DESC LIMIT 1");
$query1= mysql_fetch_object($query2);
$query=$query1->comnum;
echo $query;
$doc = new DOMDocument('1.0', 'utf-8');
$doc->loadHTML(file_get_contents($sortby.".html"));
$ap=$doc->createElement('span', "<p class='comm'><b>".$_POST['poster']."</b><span class='reply'> Popularity: ".$random." Post Number:".$data."<a href='javascript:reply(".$data.")'>Reply</a></span><br/>".$_POST['comments']."</p><div class='comm1' id='".$data."'></div>");
$ap->setAttribute('id',$data.'a');
if ($query!=false) {
$query.='a';
$doc->getElementById($x)->insertBefore($ap, $doc->getElementById($query));
echo $x;
}
else {
$doc->getElementById($x)->appendChild($ap);
}
mysql_close($don);
$we= $doc->saveHTML();
$we = preg_replace("/<!DOCTYPE [^>]+>/",'',$we);
$we = str_replace('<html><body>', '', $we);
$we = str_replace('</body></html>', '', $we);
file_put_contents($sortby.".html",htmlspecialchars_decode($we));
if ($_POST['order']==$sortby)
echo htmlspecialchars_decode($we);

表结构:

字段类型
公共(public)整数(255)
用户名 varchar(255)
评论文字
replynum int(255)
人气 int(255)
最新的整数(255)

没有指定编码。

最佳答案

如果我理解正确的话,您基本上是在管理 HTML 文档的缓存,这些缓存会随着数据库信息的更改而更改。这样做的目的是试图实现文档已经存在于用户那里,不需要为他们重新创建。

如果上面写的是正确的,那么它是否是一种有效的方法取决于您的数据的读写比率。如果每次更新有 1000 次访问,那么您的方法可能比为每次访问创建文档更有效。

要了解您需要达到的准确读/写比率才能被认为是高效的,您将必须运行测试。

关于php - 关于DomDocument效率的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com