Не нашел подходящего варианта, сделал сам. Кому-то возможно пригодится
<?function listdir($start_dir='.') { $files = array(); if (is_dir($start_dir)) { $fh = opendir($start_dir); while (($file = readdir($fh)) !== false) { if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue; $filepath = $start_dir . '/' . $file; if ( is_dir($filepath) ) $files = array_merge($files, listdir($filepath)); else array_push($files, $filepath); } closedir($fh); } else { $files = false; } return $files;}$files = listdir('.');for($i=0;$i<count($files);$i++) { $file=$files[$i]; if(substr($file, -3) == "php" && $file != "./compressor.php") { $file_cleared = php_strip_whitespace($file); $file_cleared = preg_replace('#\s*/\*.*?\*/\s*#i', "", $file_cleared); $patterns[] = '/: /'; $patterns[] = '/\n/'; $patterns[] = '/ == /'; $patterns[] = '/ = /'; $patterns[] = "/\+ /"; $patterns[] = "/ \+/"; $patterns[] = '/ === /'; $patterns[] = '/ /'; $patterns[] = '/ /'; $patterns[] = '/ /'; $patterns[] = '/ /'; $patterns[] = '/ /'; $patterns[] = "/\t/"; $patterns[] = "/\<\?php/"; $patterns[] = "/\} /"; $patterns[] = "/ \}/"; $patterns[] = "/ \{/"; $patterns[] = "/\{ /"; $patterns[] = "/\) /"; $patterns[] = "/ \)/"; $patterns[] = "/ \(/"; $patterns[] = "/\( /"; $patterns[] = "/\> /"; $patterns[] = "/\; /"; $patterns[] = "/\, /"; $replacements[] = ':'; $replacements[] = ''; $replacements[] = '=='; $replacements[] = '='; $replacements[] = '+'; $replacements[] = '+'; $replacements[] = '==='; $replacements[] = ' '; $replacements[] = ' '; $replacements[] = ' '; $replacements[] = ' '; $replacements[] = ' '; $replacements[] = ''; $replacements[] = '<?'; $replacements[] = '}'; $replacements[] = '}'; $replacements[] = '{'; $replacements[] = '{'; $replacements[] = ')'; $replacements[] = ')'; $replacements[] = '('; $replacements[] = '('; $replacements[] = '>'; $replacements[] = ';'; $replacements[] = ','; $finish = preg_replace($patterns, $replacements, $file_cleared); file_put_contents($file,$finish); echo $file,"<br>"; }}?>
Файл сканирует все файлы в том числе подпапки начиная с той где он находиться, изменяет их и перезаписывает(в данном примере только файлы с расширением php).
Удаляет комментарии в php,js. В JS комментарии должны быть так /* ... */, а не так //
Удалает пробелы и табуляцию и делать все в одну строку.
Так же изменяет(удаляет пробелы) код по заданным условиям.
Код может быть смешанным (php,js,html,css) все работает ок.
---
Условия писал какие в голову только пришли, поэтому список требует корректировки и добавления.
Так же не решена проблема c удалением комментариев в html, и комментариев вида // (мне этого было достаточно)
Буду признателен за корректировку кода, для достижения лучшего результата.
DiAksID, господи, да откуда ж вас столько берется псевдогениев которые все знают. minify работает с JS и CSS файлами только, а речь идет по крайней мере о html,css,js,php как одно целое, следовательно не решает проблемы описанной выше (если код смешанный)
Ну конечно, как у вас все просто. Раз два и все. Тут куча разных мелочей и факторов, к примеру код может быть смешанным, в одном файле и php и js и html. В Js к примеру в конце строки не обязательно ставить ;, а если в одну строку то должно быть. Не говоря уже о единичных пробелах. И если у тебя 100 файлов, я неделю буду их вручную делать так.
Конечно можно написать код который это будет делать, но зачем изобретать велосипед если возможно кто-то его уже написал.
Например как здесь.
Ну это грубо. Как в таком случае определить единичные пробелы которые лишние. Может у меня в тексте на странице есть единичные пробелы и я их всех удалю. Где >=2 впринципе можн и так.
К тому же что делать с комментариям.
UPD:
Ищется похожее на такое:
webtoolhub
Прочитайте тему полностью, сессии уже обсуждались!
Не понял, опишите процедуру такой проверки. Если вы имеете в виду например если пользователь незалогинен то просто даже и не показывать ему этот инпут, то в этом и дело что если я могу напрямую обратиться к исполняющему файлу то как этот исполняющий файл проверит что я незалогинен. Он может проверить только посредством каких то параметров которые я ему передам (GET, POST). А эти параметры я могу отправить вручную
Это вы не совсем вникли в суть вопроса. Всмысле поставить проверку на выполнение только определенным лицам, каким образом? Если вы имеете в виду chmod то даже если я поставлю все только для рута, то запрос к этому файлу идет от браузера через аякс, а значит он просто не сработает в таком случае вообще.
Если этот скрипт можно будет выполнить только с определенного места, то я смогу контролировать человека который это делает. К примеру можно сделать чтобы доступ к странице где аякс на удаление был только у модератора. А это значит что удалять сможет только модератор
Опасаюсь: у меня есть несколько аякс выполнений. Где например человек чтото вводит в инпут, аякс забирает это значение и переправляет в файл который записывает это в базу или например удаляет это с базы. Тоесть если ктото может получить доступ к этому исполняющему файлу то он может вносить и удалять из базы все что угодно.
Прошу извинить, при аяксе я форм не использую просто инпуты, селекты. Я про форму написал для примера.