Tablesorter 过滤时不清理空格,PHP 语法错误?

Tablesorter does not sanitize spaces when filtering, PHP syntax error?

上下文: 当我在 HTML 中使用 PHP echo <?= &var ?> 时,它会在我的 HTML 元素中导致白色 space。 我已经尝试用另一个 IDE 修改文件以确保这不是缩进问题,但我得到了相同的结果。 Chrome 或 Firefox 上的结果相同...

问题: 插件 tablesorter 的过滤器也过滤了白色 spaces 并且没有 return 我预期的结果。 如果我手动删除 spaces

就可以了

问题: 这是 PHP 语法错误还是其他原因?


我的PHP代码:

<td class="hidden-sm hidden-xs date">
    <?php if ($approval['STACODEM'] == '200'):?>
    <span data-toggle="popover" data-placement="top" data-trigger="hover focus" data-container="body" data-content="<?= $imgDuesDaysPopover ?>">
        <img src="<?= $imgDueDays ?>" alt="" name="imgDueDays"/>
    </span>
    <?php endif ?>
    <?= $dueDate ?>
</td>

在 Chrome 查看器中:

带日期的行:

如果我过滤,没有找到结果:

这是因为您的 html 布局。您可以内联您的代码来解决这个问题。

<td class="hidden-sm hidden-xs date">Everything in here</td>

或者您可以自定义表格排序器对行的排序方式。

最简单的内联是将 if 子句的结果分配给变量。

<?php 
$img = '';
if ($approval['STACODEM'] == '200') {
    $img = <<<IMG 
    <span data-toggle="popover" data-placement="top" data-trigger="hover focus" data-container="body" data-content="{$imgDuesDaysPopover}">
        <img src="{$imgDueDays}" alt="" name="imgDueDays"/>
    </span>
IMG;
}
?>
<td class="hidden-sm hidden-xs date"><?= $img.$dueDate ?></td>

PS: 但是要小心,如果你不内联它,你的 $img 变量也会有空格。 (不知道你的 tablesorter 是否完全忽略了 html。)

感谢 Ozan Kurt,我已将所有内容存储在一个变量中,因此代码仍然可读。

<?php
    $html = '';
    if ($approval['STACODEM'] == '200') {
        $html .= '<span data-toggle="popover" data-placement="top" data-trigger="hover focus" data-container="body" data-content="' . $imgDuesDaysPopover . '">';
        $html .= '<img src="' . $imgDueDays . '" alt="" name="imgDueDays"/>';
        $html .= '</span>';
    }
    $html .= $dueDate;
?>
<td class="hidden-sm hidden-xs date"><?=$html?></td>