0

我需要在不同类型的浏览器、邮件客户端和显示/设备类型(桌面、移动设备等)上将文本文件显示为 HTML 内容。

在小型显示器上,文本行应在屏幕末尾中断,但表格应保持布局。

无法更改文本文件本身,但可以在生成 HTML 文档之前使用 php 转换文本文件。

问题是:文本文件有一种使用空格的布局,例如显示表格,如下所示:

This is a part of a textfile, where the
   next line starts with 3 spaces, for example  <- as you can see

In some cases there are    important    spaces insight the text.
sometimes, there are also tables part of the textfiles, build with
spaces, like this:

  Row1      Row2      Row3
  Data       1          2
  Data       ax         547

如果你简单地把这个文本洞察一个<div><span>元素:布局会丢失,因为 HTML 将多个空格显示为一个。

比我尝试使用<pre>标签来保持布局。问题是:在小显示器上,您必须从左到右滚动才能阅读长行,这与可用性相比是次优的。

接下来我尝试将所有空间更改为受保护的空间:&nbsp;,使用preg_replace. 这样既保留了表格布局,也保留了文本布局,因为现在每个单词之间的每个空格都受到保护。

最后,我尝试使用这些命令仅转换具有相同数量的受保护 HTML 空格的多个空格,而不是单个空格:

 //replace odd number of spaces
 $s_text = preg_replace('/   /','&nbsp;&nbsp;&nbsp;',$s_text);
 //replace even number of spaces
 $s_text = preg_replace('/  /','&nbsp;&nbsp;',$s_text);

所以文本是“浮动的”/响应式的,一些表格保持结构。但是一些表格布局仍然被破坏。

所以我的问题是:您将如何“转换”文本以使长文本行在屏幕末端中断并且表格保持布局?

4

0 回答 0