php有没有办法突出显示两个字符串之间的差异?
我有一个表,它输出两个mySQL记录,一个是原始记录,另一个是经过编辑并标记为管理员批准/不批准的记录。我想更改列颜色以突出显示已编辑的行 除了SalaryFrom和Email之外,更改行上的颜色高亮显示适用于所有行,由于某些原因,即使值看起来完全相同,它们也始终高亮显示为不同 PHP中是否有突出显示两个字符串之间差异的函数,以便我可以找出差异所在 这是我的一行代码:php有没有办法突出显示两个字符串之间的差异?,php,Php,我有一个表,它输出两个mySQL记录,一个是原始记录,另一个是经过编辑并标记为管理员批准/不批准的记录。我想更改列颜色以突出显示已编辑的行 除了SalaryFrom和Email之外,更改行上的颜色高亮显示适用于所有行,由于某些原因,即使值看起来完全相同,它们也始终高亮显示为不同 PHP中是否有突出显示两个字符串之间差异的函数,以便我可以找出差异所在 这是我的一行代码: <tr> <?php if (htmlval($cand['salaryfrom'])
<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);
}
用这个
<?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>
有几个原因可以解释为什么字符串看起来是一样的,但它们不是真的。示例:可能需要像这样修剪标题和尾随空间:
function htmlval($text)
{
return trim(html_entity_decode($text, ENT_QUOTES));
}
<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>
有几个类、lib或自制函数可以突出显示两个字符串的差异,这不是核心php中的差异,但在您的情况下,可能只需要显式输出字符串1,然后输出字符串2,这样您就可以自己发现差异,如下所示:
function htmlval($text)
{
return trim(html_entity_decode($text, ENT_QUOTES));
}
<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>
diff是你要找的术语,我似乎能找到这里的区别是什么?注意,我需要htmlval函数来处理一个或另一个上的特殊字符。区别是!==对抗!=在这个场景中应该没有区别,实际上,建议使用user2721465版本。始终更喜欢使用!==而不是当比较两个字符串时。你能告诉我吗?为什么更喜欢!==比!=?很抱歉我的回答迟了,克里斯纳。我举个例子:$something=0;如果“password123”!=$有些东西是真实的;else echo false;//返回false,但!==总是给出预期的结果