我正在开发一个预防艾滋病毒的信息仓库网站。许多合作者将通过 tinyMCE GUI 发布文章。
当然,平面设计师想要控制页面长度。他们希望根据页面中内容的高度进行自动分页。
有人看过 AJAX 代码来管理这个吗?
除非有人看到可以进行字符计数和后视正则表达式以避免拆分单词或标签的 PHP 代码?
非常感谢任何链接!
我正在开发一个预防艾滋病毒的信息仓库网站。许多合作者将通过 tinyMCE GUI 发布文章。
当然,平面设计师想要控制页面长度。他们希望根据页面中内容的高度进行自动分页。
有人看过 AJAX 代码来管理这个吗?
除非有人看到可以进行字符计数和后视正则表达式以避免拆分单词或标签的 PHP 代码?
非常感谢任何链接!
如果不需要精确,那么您没有理由不能使用简单的字数统计功能来确定打破页面的适当位置(我想在最近的段落)。你甚至可以根据帖子中是否有图片来减少每页的字数,甚至考虑到图片的大小。
不过,这可能会很快变得丑陋,我认为最好的方法是让他们手动设置页面分隔符,并在文章中使用您可以解析的标签。[pagebreak] 之类的东西非常简单,您将获得比任何自动化解决方案都更具逻辑性和可读性的分页符。
您不仅需要担心字符数,还必须担心图像高度(如果页面中有图像或任何其他类型的嵌入对象会占用高度)。字符数也不会让您了解段落结构(具有更多字符的单个长段落比具有许多段落的页面可能更短)。
如果您愿意使用 JavaScript,那可能是理想的解决方案,请将整篇文章发布到客户端并让 JavaScript 处理分页。从客户端,您可以检测图像和对象的高度。您可以使用 PHP 来标记您认为页面应该在哪里,然后使用 JavaScript 来实现。除非页面很长,否则我认为您不需要执行多个 xmlHttpRequests (AJAX)。
对于一个直接的 PHP 解决方案也很简单,但可能并不理想,因为您不需要处理管理行数的问题。您可以使用 GET 变量来确定您在页面中的位置。
虽然这可能不是您正在寻找的确切答案,但您确实应该确保您的网站没有固定的高度。灵活的宽度非常好,但不如高度那么重要。
特别是对于这样的原因,以及内容繁重的网站;要求灵活的高度是公平的。
正如 apphacker 所提到的,您无法从 PHP 中真正检测到高度,并且您有点被 javascript 所困。如果您完全被分页所困扰,最好让您的内容作者决定何时断开页面,因此您可以在实际部分中断开它,而不是中间词、句子等。
编辑:可用性应该决定设计,而不是相反。你这样做是错的 ;)
一个好的分页不是一项简单的任务。这不是简单的编码问题。Plass (1981) 的科学研究证明,最佳分页通常是 NP-hard。您应该担心浮动数字、换行符、不同的字体样式等。
HTML 引擎唯一可以帮助您的是将页面解析为 DOM 树。尺寸呢?是的,你可以有字体宽度和字体高度、边距和填充、图片大小。但仅此而已。所有的布局都在你的肩上。并用javascript做......嗯......
因此,自动固定高度分页的唯一可行解决方案是服务器端。PrinceXML 是目前最好的 HTML2PDF 转换器。但它的成本很高。
如果你擅长不同的页面高度,你可以使用 epalla 的建议。但这也不像看起来那么简单。
分页的一些参考: