Редкостная Блядь ([info]clops) wrote in [info]ru_php,

Маньякам посвящается

Для тех, кого душит жаба отдавать кучу бабла за Zend Encoder, я написал маленький скриптик, который

а) вырежет все комментарии из вашего кода
б) вырежет все приметы форматирования (ну или почти все)
в) тем самым ускорит код в среднем на 17%



<?
    
/**
     * strip() - will strip all comments of all PHP files recursing through the
     *              directory structure. Beware, there is no undo.
     *
     * @param string $path
     * @return void
     **/
    
function strip($path=""){
        
$d dir($path);
        
        while(
$entry $d->read()){
            
//bogus check
            
if($entry == '.' or $entry == '..'){
                continue;
            }
            
            
//fix entry
            
$entry $path $entry;
            
            
//is this a directory?
            
if(is_dir($entry)){
                echo 
$entry "<b>DIR</b><br>";    
                
strip($entry "/");
            }    
            
            
//check if file is PHP
            
if(!eregi("\.php$",$entry) or eregi("(strip|config\.inc|config)\.php$",$entry)){
                continue;
            }
            
            echo 
"Will open $entry ";
            
            
$file fopen($entry,"r");
            
$content fread($file,filesize($entry));
            
fclose($file);
            
            echo 
":: parsing file ";
            
            
//tabs
            
$content str_replace("\t","",$content);
            
            
//comment blocks
            
$content preg_replace("/\/\*(.*?)\*\//si","",$content);
            
            
//single line comments
            
$content preg_replace("/\/\/(.*?)\\n/si","",$content);
            
$content preg_replace("/#(.*?)\\n/si","",$content);
            
            
//new lines
            
$content ereg_replace("[\r\n|\n|\r]{2,}","\n",$content);
            
            echo 
":: writing file";
            
            
$file fopen($entry,"w");
            
fwrite($file,$content);
            
fclose($file);
            
            echo 
":: done!<br>";
        }
        
        
$d->close();
    }
    
    
strip();
?>

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    Your reply will be screened

    Your IP address will be recorded 

  • 23 comments

[info]demiurg

August 18 2003, 09:44:12 UTC 8 years ago

может лучше POBS'ом? =)

[info]clops

August 19 2003, 01:11:58 UTC 8 years ago

а я не знал о его существовании =)) теперь знаю =) просто надо было быстро код прочистить от всякой бяки прежде чем отдавать третьему ицу ;)

[info]demiurg

August 19 2003, 02:33:05 UTC 8 years ago

я хоть и знаю про него, но всё равно предпочитаю юзать кракнутый ZendEncoder.
как-то оно так надёжнее и (пока не сломали) спокойнее... =)

а то, что кто-то будет проверять лицензии и т.д. и т.п., так это по-моему сказки всё. никто не будет этого делать, если общая стоимость передаваемой системы ниже хотя б того же ZendEncoder'а.

[info]clops

August 19 2003, 02:34:54 UTC 8 years ago

кстати, а ведь для того чтобы пускать закодированные скрипты надо PHP клмпилить по новой?

[info]demiurg

August 19 2003, 02:41:29 UTC 8 years ago

не не не... подключаешь только ZendOptimizer в php.ini
да, это может быть проблематично для некоторых хостингов. =/

[info]clops

August 19 2003, 02:44:28 UTC 8 years ago

Хотелось бы попробовать просто что да как =)

[info]demiurg

August 19 2003, 14:53:24 UTC 8 years ago

енкодер дать покатаццо? ну, стучись в аську =)

[info]now_available

August 18 2003, 10:12:37 UTC 8 years ago

Точно в среднем на 17%?

[info]clops

August 19 2003, 01:21:43 UTC 8 years ago

в среднем 17% кода хорошего программиста составляют комментарии и форматирование, а то и больше. Не я эти цифры выдумал, кажется именно на zend.com и прочитал

[info]egoroff

September 19 2003, 04:03:34 UTC 8 years ago

:) рулез

т.е. ты делаешь прямую зависимость между рамером исходных тесктов программы и её скорости? Это мягко говоря не соответствует действительности.

Узкие места в 99% случаев находятся не в рамере исходников :)

[info]clops

September 19 2003, 05:12:52 UTC 8 years ago

Re: :) рулез

понятное дело =))

[info]tony2001

August 18 2003, 14:12:13 UTC 8 years ago

вот-вот
ускорьте, плз, мой скрипт:

на 17%.
можно даже в среднем ускорить, я не требовательный.

[info]linea_alba

August 18 2003, 19:45:42 UTC 8 years ago

Добрый вы...

[info]tony2001

August 18 2003, 23:23:59 UTC 8 years ago

просто люблю, когда изобретают одноколесный велосипед...

[info]advocat

August 19 2003, 01:17:26 UTC 8 years ago

5 балов!

[info]clops

August 19 2003, 01:20:58 UTC 8 years ago

учите статистику дабы понять значение "в среднем".

[info]tony2001

August 19 2003, 01:48:56 UTC 8 years ago

у одного из моих преподавателей была любимая поговорка:
в одной палате у всех под 40, в другой - 25 (т.е. комнатная), а в среднем по больнице - 36.6

результаты экспресс-тестов:
файл с одной строкой кода + 13 кил комментов парсится на 70% медленней.
файл с коннектом, выборкой и выводом + 13 кил комментов - на 37%.

спрашивается:
какие В СРЕДНЕМ у вас скрипты?
я на этот вопрос затрудняюсь ответить.

[info]clops

August 19 2003, 01:51:47 UTC 8 years ago

Эти цифры не я придумал, я давно как-то на zend.com вычитал =) у меня в среднем на каждой страннице коннект к базе и 5-10 запросов по 30-40 таблицам. Вырезав всё форматирование и все комментарии кода стало меньше на 29%, скорость выросла на 15.

[info]tony2001

August 19 2003, 02:06:27 UTC 8 years ago

кстати, Zend Optimizer на это никак не влияет.
а вот PHP Accelerator разницу между скриптом С комментом и БЕЗ коммента водит на ноль
.
P.S. только что опробовано.

[info]clops

August 19 2003, 02:08:43 UTC 8 years ago

PHP Accelerator - понятное дело. Как никак, откомпилированный скрипт в кеше хранится. Вот мы - имеем доступ к своему серверу, где можем проставить любой софт, а простые смертные порой не имеют доступ даже к простопу хостиншу.

[info]zaza

August 19 2003, 02:12:48 UTC 8 years ago

IMHO: Gospodin a vy velosiped slucajno ne sobrali? php -w cto delaet? http://www.php.net/manual/en/features.commandline.php

[info]clops

August 19 2003, 02:16:33 UTC 8 years ago

есть что-то.

[info]bermuda

September 19 2003, 08:48:57 UTC 8 years ago

прикольно
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…