我正在开发一个需要将html电子邮件转换为文本的项目.以下是HTML代码的简化版本:
<table>
<tr>
<td width="10%"></td>
<td width="60%"> test product </td>
<td width="20%">5</td>
<td width="10%"> £50.00 </td>
</tr>
<tr>
<td></td>
<td colspan="3" width="100%"> Project Name: Test Project </td>
</tr>
<tr>
<td width="10%"> </td>
<td colspan="2" width="80%"> Page 1 : 01 New York 1.jpg </td>
<td width="10%"> £0.00 </td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
预期的结果应该在文本文件中看起来像这样(列很好地对齐):
test product 5 £50.00
Project Name: Test Project
Page 1 : 01 New York 1.jpg £0.00
Run Code Online (Sandbox Code Playgroud)
我的想法是通过DOMDocument解析HTML内容.然后,我将设置表(即:100位)具有默认宽度然后从转换%每列的宽度的空格数(基于colspan&width的属性<td>标记).然后我将这些列宽减去strlen每列中的数据,以将pad_right所需的空格数归档到字符串,使所有内容垂直对齐.
我一直在那样工作,没有归档我想要的东西,但只是想知道它是愚蠢还是有人知道更好的方法请帮助我.
此外,当谈到多字节语言(日语,韩语等...)时,我认为我的方法不会起作用,因为它们的字符将超过一个空格并且最终会变得混乱.
有人可以帮帮我吗?
我需要根据我所处的情况在存储过程中动态创建游标,理想情况如下:
IF (varOrgGroupCode = '') THEN
BEGIN
DECLARE groupCode CURSOR FOR
SELECT `groupcode` FROM `LICENSEKEYS`;
END;
ELSE
BEGIN
DECLARE groupCode CURSOR FOR
SELECT `groupcode` FROM `LICENSEKEYS` WHERE `groupcode` = varOrgGroupCode;
END;
END IF;
Run Code Online (Sandbox Code Playgroud)
上面的代码将导致语法错误.我用谷歌搜索,有人用临时表做了.谁能告诉我怎么样?