<?php 
// compatibiliteit met php5 voor comments 
if (!defined ('T_ML_COMMENT'))
{
    define ('T_ML_COMMENT', T_COMMENT);
}
if (!defined ('T_DOC_COMMENT'))
{
    define ('T_DOC_COMMENT', T_ML_COMMENT);
}

// niet definen op php5 (als de functie bestaat)
if (!function_exists ('php_strip_whitespace'))
{
    /*
     *    string php_strip_whitespace (string file_name)
     *
     *    @author  JeXuS <jexus@jexus.net>
     *
     *    @param   string   file_name
     *    @return  string
     */
    function php_strip_whitespace ($file_name)
    {
        // checken of het bestand bestaat
        if (!is_file ($file_name))
        {
            return false;
        }
        // compatibiliteit met oudere versies
        $content = implode ('', file ($file_name));

        // deel de content op in tokens
        $tokens = token_get_all ($content);

        // basis vars
        $last_space = false;
        $return = '';
        for ($i = 0, $j = count ($tokens); $i < $j; $i++)
        {
            // als het een string is (basis teken)
            // gewoon toevoegen
            if (is_string ($tokens[$i]))
            {
                // hierna mogen ook spaties komen
                $last_space = false;
                $return .= $tokens[$i];
            }
            else
            {
                switch ($tokens[$i][0])
                {
                    // commentaar blijft weg
                    case T_COMMENT:
                    case T_ML_COMMENT:
                    case T_DOC_COMMENT:
                        // hier gewoon niks doen
                    break;

                    // spaties
                    case T_WHITESPACE:
                        // alleen als er geen spatie voor was
                        if (!$last_space)
                        {
                            // spatie erbij
                            $return .= ' ';
                            // variabele aanzetten, geen extra
                            // spaties meer
                            $last_space = true;
                        }
                    break;

                    // bij alle andere dingen gewoon toevoegen
                    default:
                        // er mogen nu weer spaties komen
                        $last_space = false;
                        $return .= $tokens[$i][1];
                    break;
                }
            }
        } // END for

        // hier return ik de content weer
        return $return;
    } // END php_strip_whitespace
}
// ** EOF **
?>