良好的PHP文本分页

时间:2009-04-29 15:54:26

标签: php javascript ajax content-management-system pagination

我正在建立一个艾滋病预防信息仓库网站。很多合作者将通过tinyMCE GUI发布文章。

当然,图形设计师需要控制页面长度。他们希望根据页面内容的高度自动分页。

有人看过AJAX代码来管理这个吗?

除非有人看到PHP代码可以进行字符计数和后备正则表达式以避免拆分单词或标签?

非常感谢任何链接!

4 个答案:

答案 0 :(得分:3)

如果它不需要精确,那么就没有理由不能使用简单的字数统计功能来确定打破页面的适当位置(在我猜的最近的段落)。你甚至可以根据帖子中是否有图像来减少每页的单词数,甚至考虑到图像的大小。

虽然这可能会变得很难看,但我认为最好的方法是允许他们在你可以解析的文章中用一个标签手动设置页面分隔符。像[pagebreak]这样的东西非常简单,你会得到比任何自动化解决方案都要多得多的逻辑和可读的分页符。

答案 1 :(得分:1)

您不必担心字符数,如果您的页面中有图像或任何其他类型的嵌入对象可以占用高度,您还必须担心图像高度。字符计数也不会让您了解段落结构(单个长段落的字符数多于具有多个段落的页面可能更短)。

如果您愿意使用JavaScript,这可能是理想的解决方案,请将整篇文章发布到客户端,让JavaScript处理分页。从客户端,您可以检测图像和对象的高度。你可以使用PHP来设置你认为页面应该在哪里的标记,然后使用JavaScript来实现它。除非页面很长,否则我认为你不需要做几个xmlHttpRequests(AJAX)。

对于一个简单的PHP解决方案也很简单,但可能并不理想,因为您没有处理管理行数的问题。您可以使用GET变量来确定您在页面中的位置。

答案 2 :(得分:1)

虽然这可能不是您正在寻找的确切答案,但您应该确保您的网站没有固定的高度。灵活的宽度非常好,但不像高度那么重要。

特别是对于这样的原因,以及内容沉重的网站;要求灵活的高度是公平的。

正如apphacker所提到的,你无法真正从PHP中检测到高度,而且你有点被javascript困住了。如果你完全坚持使用分页,最好让你的内容作者决定何时中断页面,这样你就可以在一个真实的部分打破它,而不是中间的单词,句子等等。

编辑:可用性应该决定设计,而不是相反。你做错了;)

答案 3 :(得分:1)

好的分页不是一项简单的任务。这不是一个简单的编码问题。 Plass(1981)的科学研究证明,最佳分页通常是NP难的。 您应该担心浮动数字,换行符,不同的字体样式等。

HTML引擎唯一可以帮助您的是将页面解析为DOM树。大小怎么样?是的,你可以有字体宽度和字体高度,边距和填充,图片大小。但就是这样。所有的布局都在你的肩上。并在javascript中执行... meh ...

因此,自动固定高度分页的唯一可行解决方案是服务器端。 PrinceXML是目前最好的HTML2PDF转换器。但它花了很多钱。

如果你对不同的页面高度很好,你可以使用epalla的建议。但这并不像看起来那么简单。

分页的一些参考: