From:  pear-qa@lists.php.net ("pear@0xdecafbad.com")
Date:  01 Jun 2016 00:56:24 Hong Kong Time
Newsgroup:  news.php.net/php.pear.bugs
Subject:  

[PEAR-BUG] Bug #21070 [Com]: Cannot calculateTotalsFor() with colorized text

NNTP-Posting-Host:  null

Edit report at https://pear.php.net/bugs/bug.php?id=21070&edit=1

 ID:               21070
 Comment by:       pear@0xdecafbad.com
 Reported By:      pear at 0xdecafbad dot com
 Summary:          Cannot calculateTotalsFor() with colorized text
 Status:           Open
 Type:             Bug
 Package:          Console_Table
 Operating System: ubuntu
 Package Version:  1.3.0
 PHP Version:      5.5.18
 Roadmap Versions: 
 New Comment:

I only added this to this bug because its  the same fundamental problem
(non numbers in the array post filter), although different enough it may
do well with its own thread.  This occurred to me at this point and not
before my comment.  I will create a new bug report/feature request for
the formatted number problem.


Previous Comments:
------------------------------------------------------------------------

[2016-05-31 12:17:22] bmcdanel

To make this work even better perhaps something like this would be
helpful to add.

https://gist.github.com/msng/1504235
unformat a number that has been formatted with number_format()

This is less trivial and I am unsure of the code submission process
especially for code that is not mine so I am reluctant to apply it,
however it seems to me that numbers might often be formatted with a
filter before they are summed at the end.

------------------------------------------------------------------------

[2016-05-31 08:56:34] bmcdanel

Description:
------------
Colorized text (Console_Color2) adds escape characters.
calculateTotalsFor() does not strip this

This would work if calculateTotalsFor() ran before the filters but 
that would likely cause problems 
for several use cases where data formatting is required (eg 
2+2=5 for large values of 2).

I defined my table with "ansi color" = true.  However that 
function does not use it.  To that end I 
altered it:

Starting about line 504 in Table.php
                foreach ($this->_calculateTotals as $columnID) {
                        if ($this->_ansiColor) {
                               $totals[$columnID] += $this->_ansiColor-
>strip($row[$columnID]);
                        } else {
                               $totals[$columnID] += $row[$columnID];
        		}
                }


Works for me.  Should work for everyone.

Expected result:
----------------
for it to work

Actual result:
--------------
didnt work

------------------------------------------------------------------------


-- 
Edit this bug report at https://pear.php.net/bugs/bug.php?id=21070&edit=1