<?php

if (!defined ('T_ML_COMMENT'))
{
    
define ('T_ML_COMMENT'T_COMMENT);
}
if (!
defined ('T_DOC_COMMENT'))
{
    
define ('T_DOC_COMMENT'T_ML_COMMENT);
}

function 
StripWhitespace($sFileName)
{
    if ( !
is_file($sFileName) )
    {
        return 
false;
    }

    
$sContent implode(''file($sFileName));

    
$aTokens token_get_all($sContent);

    
$bLast false;
    
$sStr '';
    for ( 
$i 0$j count($aTokens); $i $j$i++ )
    {
        if ( 
is_string($aTokens[$i]) )
        {
            
$bLast false;
            
$sStr .= $aTokens[$i];
        }
        else
        {
            switch ( 
$aTokens[$i][0] )
            {
                case 
T_COMMENT:
                case 
T_ML_COMMENT:
                case 
T_DOC_COMMENT:
                break;
                case 
T_WHITESPACE:
                if (!
$bLast)
                {
                    
$sStr .= ' ';
                    
$bLast true;
                }
                break;
                default:
                     
$bLast false;
                    
$sStr .= $aTokens[$i][1];
                break;
            }
        }
    }

    
$sStr trim($sStr);
    
$sStr str_replace("\n"""$sStr);
    
$sStr str_replace("\r"""$sStr);

    return 
$sStr;
}

?>