Собственно, функции: Максимальное сжатие: 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
PHP: $code = '<? /* тут типа куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча куча кода */ ?>'; $code = base64_encode(gzdeflate($code)); echo $code; Распаковка - base64 decode && gzinflate && eval
-Hormold- надо ещо все переменные переименовывать в короткие названия типо, $a $b. а потом base64_encode(gzdeflate($code). для шела самое то.
hormold , реал бесполезно)) ну если конечно идёт вопрос на мегабайты))) их труднее заливать, но в нае время пох на это.