我在一个函数(remote_filesize())中使用PHP regex和fopen来远程(fopen,pre_match,implode)获取文件的大小。使用函数callback:remote_filsize($filename)回显结果,即文件大小,其中$filename是使用$row‘’alerts‘索引从MySQL PDO查询中获取的URL。Alerts是打开程序窗口并运行上述功能时检查的实际文件大小。
如何使用返回函数值将表中的下一个索引行作为比较值进行比较……如果来自rowalerts的值大于我上次检查记录页面时手动保存到数据库的rowstatus ->the旧值。最后,我想使用小于的结果来突出显示我的“记录页面”中的字段,使其具有绿色背景或红色背景(class=“危险或成功”),当然这取决于大小的变化。
这就是我所使用的,但当新文件大小的值大于旧文件大小的值时,它总是返回“绿色”成功。实际上,我的表数据字段的类始终是绿色背景,而不管值的比较状态如何。
<td class="overflow">
<?//php
/**
* gets files size to compare then compares size
* of saved value @status to current callback value @alerts
*/
if( !empty($row['alerts'])) {
$filename = $row['alerts'];
$oldfilesize = $row['status'];
if( remote_filesize($filename) > $oldfilesize ) { $highlite = "danger"; } else { $highlite = "success"; }
echo "<a href='' title='$filename'>url</a>";
echo remote_filesize($filename);
}
//?></td>
<td class="<?php echo escape( $highlite ); ?>"><?php echo escape($row['status']); ?></td>
id alert status
------------------------
1 | 55000 | 55010
------------------------上面的结果表会告诉我'status‘的背景应该是红色的,因为它的大小大于'alert’值的整数。我所检查的是文件是否被更改(大小已更改)。
发布于 2016-09-19 13:18:52
老实说,这是那些深夜应该喝点咖啡的情况之一。我通过简单地检查两个值是否相同就解决了这个问题。如果两个值相同,则if( remote_filesize($filename) == $newfilesize )会将结果默认为绿色以表示成功。这是一种更全面的解决方案,因为文件大小可以小于保存的值,并且无论更改是大是小,仍然构成文件已“更改”。
https://stackoverflow.com/questions/39565116
复制相似问题