ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Сжатие php кода путём удаления комментариев, пробелов и т.п.
  #1  
Старый 29.03.2009, 20:20
Аватар для -Hormold-
-Hormold-
Постоянный
Регистрация: 29.09.2007
Сообщений: 617
Провел на форуме:
3250478

Репутация: 999


Отправить сообщение для -Hormold- с помощью ICQ
По умолчанию Сжатие php кода путём удаления комментариев, пробелов и т.п.

Собственно, функции:

Максимальное сжатие:
PHP код:
<?
function compress_code($code) {
    
$array token_get_all($code);
    
$ret "";
    for(
$i 0$i count($array); $i++) {
        
$obj $array[$i];
        if(
is_string($obj))
            
$ret .= $obj;
        else {
            
$a $obj[0];
            
$s $obj[1];
            if(
$a == T_ABSTRACT || $a == T_CASE || $a == T_CLASS || $a == T_CLONE || $a == T_CONST || $a == T_DECLARE || $a == T_ECHO || $a == T_ELSE || $a == T_FINAL || $a == T_FUNCTION || $a == T_GLOBAL || $a == T_INCLUDE || $a == T_INCLUDE_ONCE || $a == T_INTERFACE || $a == T_NEW || $a == T_OLD_FUNCTION || $a == T_PRINT || $a == T_PRIVATE || $a == T_PUBLIC || $a == T_PROTECTED || $a == T_RETURN || $a == T_REQUIRE || $a == T_REQUIRE_ONCE || $a == T_STATIC || $a == T_PROTECTED || $a == T_THROW || $a == T_USE || $a == T_VAR || $a == T_LNUMBER)
                
$ret .= strtolower($s)." ";
            if(
$a == T_AND_EQUAL || $a == T_CHARACTER || $a == T_CONCAT_EQUAL || $a == T_CONSTANT_ENCAPSED_STRING || $a == T_CURLY_OPEN || $a == T_DEC || $a == T_DIV_EQUAL || $a == T_DOLLAR_OPEN_CURLY_BRACES || $a == T_DOUBLE_ARROW || $a == T_DOUBLE_COLON || $a == T_INC || $a == T_INLINE_HTML || $a == T_IS_EQUAL || $a == T_IS_GREATER_OR_EQUAL || $a == T_IS_IDENTICAL || $a == T_IS_SMALLER_OR_EQUAL || $a == T_MINUS_EQUAL || $a == T_MUL_EQUAL || $a == T_MOD_EQUAL || $a == T_OPEN_TAG_WITH_ECHO || $a == T_OR_EQUAL || $a == T_PAAMAYIM_NEKUDOTAYIM || $a == T_PLUS_EQUAL || $a == T_SL || $a == T_SL_EQUAL || $a == T_SR || $a == T_SR_EQUAL || $a == T_START_HEREDOC || $a == T_STRING || $a == T_ENCAPSED_AND_WHITESPACE || $a == T_NUM_STRING || $a == T_STRING_VARNAME || $a == T_XOR_EQUAL || $a == T_OBJECT_OPERATOR || $a == T_IS_NOT_EQUAL || $a == T_IS_NOT_IDENTICAL)
                
$ret .= $s;
            if(
$a == T_AS || $a == T_BOOLEAN_AND || $a == T_BOOLEAN_OR || $a == T_EXTENDS || $a == T_IMPLEMENTS || $a == T_INSTANCEOF || $a == T_LOGICAL_AND || $a == T_LOGICAL_OR || $a == T_LOGICAL_XOR)
                
$ret .= " ".strtolower($s)." ";
            if(
$a == T_CLASS_C || $a == T_DIR || $a == T_FILE || $a == T_FUNC_C || $a == T_LINE || $a == T_METHOD_C || $a == T_NS_C)
                
$ret .= strtoupper($s);
            if(
$a == T_ARRAY || $a == T_ARRAY_CAST || $a == T_BOOL_CAST || $a == T_BREAK || $a == T_CATCH || $a == T_CONTINUE || $a == T_DEFAULT || $a == T_DO || $a == T_DOUBLE_CAST || $a == T_ELSEIF || $a == T_EMPTY || $a == T_ENDDECLARE || $a == T_ENDFOR || $a == T_ENDFOREACH || $a == T_ENDIF || $a == T_ENDSWITCH || $a == T_ENDWHILE || $a == T_WHILE || $a == T_EVAL || $a == T_EXIT || $a == T_FOR || $a == T_FOREACH || $a == T_HALT_COMPILER || $a == T_IF || $a == T_INT_CAST || $a == T_ISSET || $a == T_LIST || $a == T_OBJECT_CAST || $a == T_STRING_CAST || $a == T_SWITCH || $a == T_TRY || $a == T_UNSET || $a == T_UNSET_CAST)
                
$ret .= strtolower($s);
            if(
$a == T_CLOSE_TAG)
                
$ret .= " ".$s;
            if(
$a == T_DNUMBER)
                
$ret .= $s." ";
            if(
$a == T_END_HEREDOC) {
                
$ret .= $s.";\r\n";
                
$i++;
            }
            if(
$a == T_OPEN_TAG)
                
$ret .= trim(strtolower($s))." ";
            if(
$a == T_VARIABLE) {
                if(
$s == '$HTTP_POST_VARS')
                    
$s '$_POST';
                if(
$s == '$HTTP_GET_VARS')
                    
$s '$_GET';
                if(
$s == '$HTTP_REQUEST_VARS')
                    
$s '$_REQUEST';
                if(
$s == '$HTTP_COOKIE_VARS')
                    
$s '$_COOKIE';
                if(
$s == '$HTTP_POST_FILES')
                    
$s '$_FILES';
                if(
$s == '$HTTP_SERVER_VARS')
                    
$s '$_SERVER';
                if(
$s == '$HTTP_SESSION_VARS')
                    
$s '$_SESSION';
                
$ret .= $s;
            }
        }
    }
    
$ret preg_replace("#<\?php#is","<?",$ret);
    
$ret preg_replace("#php \?>#is","?>",$ret);
    
$ret str_replace("<?  ?>","",$ret);
    return 
$ret;
}
?>
Только удаление комментраиев:
PHP код:
function remove_comments($code) {
    
$array token_get_all($code);
    
$ret "";
    for(
$i 0$i count($array); $i++) {
        
$obj $array[$i];
        if(
is_string($obj))
            
$ret .= $obj;
        else {
            if(!
strstr(token_name($obj[0]),"COMMENT"))
                
$ret .= $obj[1];
        }
    }
    return 
$ret;

Пример:
PHP код:
$cnt=compress_code(file_get_contents('script.php'));
file_put_contents('script.php',$cnt); 
(C) Eugen, с tem.dp.ua
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ