我有一个表输出两个mySQL记录,一个原始记录和一个已被编辑并标记为由管理员批准/拒绝的表。我想更改列颜色以突出显示已编辑的行。
更改行的颜色突出显示适用于除" SalaryFrom"之外的所有行。和"电子邮件"由于某种原因,即使值看起来完全相同,它们也总是被突出显示为不同。
PHP中是否有任何功能突出显示两个字符串之间的区别,以便我可以找出差异在哪里?
这是我的一行代码:
<tr>
<?php
if (htmlval($cand['salaryfrom'])!==htmlval($flaggedcand['salaryfrom']))
{
$tcolor="#000000";
}
else
{
$tcolor="#D3D5E8";
}
?>
<td bgcolor=<?php echo $tcolor ;?>><b>Salary from</b></td>
<td><?php htmlout($flaggedcand['salaryfrom']." "); ?></td>
</tr>
function htmlval($text)
{
return html_entity_decode($text, ENT_QUOTES);
}
答案 0 :(得分:0)
使用此
<?php
if ( $cand['salaryfrom'] != $flaggedcand['salaryfrom'] ) $tcolor ="#000000";
else $tcolor="#D3D5E8";
?>
<td style="background: <?php echo $tcolor; ?>;"><b>Salary from</b></td>
<td><?php echo $flaggedcand['salaryfrom'] ." "; ?></td>
答案 1 :(得分:0)
有几个原因可以解释为什么你的琴弦看起来一样,但它们并不是真实的。示例:可能需要修剪标题和尾随空格,如下所示:
function htmlval($text)
{
return trim(html_entity_decode($text, ENT_QUOTES));
}
有两个类,lib或自制函数来突出显示两个字符串差异(不在核心php中)但在你的情况下,它可能只是输出显式字符串1然后字符串2,这样你就可以像这样自己发现差异:
<tr>
<?php
if (htmlval($cand['salaryfrom'])!==htmlval($flaggedcand['salaryfrom']))
{
$tcolor="#000000";
ob_start();
var_dump(htmlval($cand['salaryfrom']));
echo " is not equal to ";
var_dump(htmlval($flaggedcand['salaryfrom']));
$out = ob_get_clean();
}
else
{
$tcolor="#D3D5E8";
$out = $flaggedcand['salaryfrom'];
}
?>
<td bgcolor=<?php echo $tcolor ;?>><b>Salary from</b></td>
<td><?php htmlout($out." "); ?></td>
</tr>