我正在使用Wordpress中的帖子模板来创建表格。然而,格式有点搞砸了。
生成代码的PHP进入并查询服务器以获取当天用户的测试信息。然后它会删除该内部报告以获得该表。请注意,报告不会关闭</tbody>
标记,因此我必须使用str_replace来关闭该标记。
global $current_user;
get_currentuserinfo();
$raw_contents = file_get_contents('http://******/NamedRptRun.asp?Rpt=DailyUserSum&Prj=******_****UserId='.($current_user->user_login));
$trim_raw = trim($raw_contents);
//echo htmlentities($trim_raw);
if ($trim_raw == 'No Records Returned') {
echo 'No test cases to report today.';
} else {
$tag = '<TABLE';
$topTrim_contents = stristr($raw_contents, $tag);
$tag = '</BODY>';
$table_only = stristr($topTrim_contents, $tag, TRUE);
$table_only = str_replace("</tr></table>", "</tbody></tr></table>",$table_only);
echo htmlentities($table_only);
echo str_replace(array("\r\n","\n","\t"), ' ',$table_only);
}
这为我提供了表的两个代码(仅用于调试目的),以及表应该是什么。但是,表的值实际上不在表中,而是显示在表格上方的行上。
<TABLE cellspacing=0 cellpadding=0 border=1 bordercolor=Silver>
<thead class=b>
<TR bgColor=WHITE>
<th> Engineer </th><th> Passed </th><th> PWWarn </th><th> Blocked </th><th> Failed </th><th> Total Run </th></tr></thead><tbody class=h><TR bgColor=#F1F1F1><TD nowrap>myname</td><TD nowrap>1</td><TD nowrap>0</td><TD nowrap>0</td><TD >0</td><TD nowrap>1</td></tbody></tr></table>
10001
Engineer Passed PWWarn Blocked Failed Total Run
myname
任何人都有任何关于为什么会发生这种情况的建议?
粘贴查看页面生成的最终表格的来源。
<table border="1" cellspacing="0" cellpadding="0">
<thead class="b">
<tr bgcolor="WHITE">
<th> Engineer</th>
<th> Passed</th>
<th> PWWarn</th>
<th> Blocked</th>
<th> Failed</th>
<th> Total Run</th>
</tr>
</thead>
<tbody class="h">
<tr bgcolor="#F1F1F1">
<td nowrap="nowrap">myname</td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
在联系SimplePostTemplate的作者后找到了解决方案。似乎wordpress会过滤掉坏的HTML,这正是它对我的表所做的,也就是为什么它没有正确显示。
我能够让其他部门在进行wordpress之前清理他们的html,从而通过过滤器并解决问题。