Файл сканирует все файлы в том числе подпапки начиная с той где он находиться, изменяет их и перезаписывает(в данном примере только файлы с расширением php).
Удаляет комментарии в php,js. В JS комментарии должны быть так /* ... */, а не так //
Удалает пробелы и табуляцию и делать все в одну строку.
Так же изменяет(удаляет пробелы) код по заданным условиям.
Код может быть смешанным (php,js,html,css) все работает ок.
---
Условия писал какие в голову только пришли, поэтому список требует корректировки и добавления.
Так же не решена проблема c удалением комментариев в html, и комментариев вида // (мне этого было достаточно)
---
Буду признателен за корректировку кода, для достижения лучшего результата.
DiAksID, господи, да откуда ж вас столько берется псевдогениев которые все знают. minify работает с JS и CSS файлами только, а речь идет по крайней мере о html,css,js,php как одно целое, следовательно не решает проблемы описанной выше (если код смешанный)
DiAksID: всё можно сделать, хотя и не одним, а последовательность 3-х/4-х preg_replace. аккуратно и так как нужно кодеру: и форматированные участки можно защитить от изменения, а уж комменты всех видов вырезаются вообще без проблем (вопрос о них, мягко говоря, выглядит смешно).
ЗЫ: времени на то что бы включить мозг и отладить этот простенький алгоритм нужно значительно меньше чем дождаться здесь "подарка". хотя каждому своё...
Ну конечно, как у вас все просто. Раз два и все. Тут куча разных мелочей и факторов, к примеру код может быть смешанным, в одном файле и php и js и html. В Js к примеру в конце строки не обязательно ставить ;, а если в одну строку то должно быть. Не говоря уже о единичных пробелах. И если у тебя 100 файлов, я неделю буду их вручную делать так.
Конечно можно написать код который это будет делать, но зачем изобретать велосипед если возможно кто-то его уже написал.
а делается все одной preg_replace буфера вывода...
Ну это грубо. Как в таком случае определить единичные пробелы которые лишние. Может у меня в тексте на странице есть единичные пробелы и я их всех удалю. Где >=2 впринципе можн и так.
siv1987: В смысле модератора, и таким образом, каким вы определяете пользователя в других местах. Посмотрите у любой кмс как там устроено где есть распределения прав, без никаких "скрытых" путей и файлов. Если файл может быть выполнен напрямую, или он отработает при прямом обращений без его включения в других файлах, должна быть проверка на право выполнением этим пользователем (юзером/гостем/модератором).
Не понял, опишите процедуру такой проверки. Если вы имеете в виду например если пользователь незалогинен то просто даже и не показывать ему этот инпут, то в этом и дело что если я могу напрямую обратиться к исполняющему файлу то как этот исполняющий файл проверит что я незалогинен. Он может проверить только посредством каких то параметров которые я ему передам (GET, POST). А эти параметры я могу отправить вручную
siv1987: Что мешает на файл обработчик поставить проверку на выполнения только определенным лицам? У вас не совсем правильно построена логика работы. Обработка обязательно должны быть и на стороне сервера.
Это вы не совсем вникли в суть вопроса. Всмысле поставить проверку на выполнение только определенным лицам, каким образом? Если вы имеете в виду chmod то даже если я поставлю все только для рута, то запрос к этому файлу идет от браузера через аякс, а значит он просто не сработает в таком случае вообще.
Sigmo#ID: А что мешает удалять всё что угодно через инпут? Значит у вас фильтр в аяксе, то есть на стороне клиента. Переносите основной фильтр на сторону сервера. На клиенте фильтр должен быть только для удобства пользователя, доверять ему нельзя.
Если этот скрипт можно будет выполнить только с определенного места, то я смогу контролировать человека который это делает. К примеру можно сделать чтобы доступ к странице где аякс на удаление был только у модератора. А это значит что удалять сможет только модератор
Опасаюсь: у меня есть несколько аякс выполнений. Где например человек чтото вводит в инпут, аякс забирает это значение и переправляет в файл который записывает это в базу или например удаляет это с базы. Тоесть если ктото может получить доступ к этому исполняющему файлу то он может вносить и удалять из базы все что угодно.
Прошу извинить, при аяксе я форм не использую просто инпуты, селекты. Я про форму написал для примера.
Не нашел подходящего варианта, сделал сам. Кому-то возможно пригодится
Файл сканирует все файлы в том числе подпапки начиная с той где он находиться, изменяет их и перезаписывает(в данном примере только файлы с расширением php).
Удаляет комментарии в php,js. В JS комментарии должны быть так /* ... */, а не так //
Удалает пробелы и табуляцию и делать все в одну строку.
Так же изменяет(удаляет пробелы) код по заданным условиям.
Код может быть смешанным (php,js,html,css) все работает ок.
---
Условия писал какие в голову только пришли, поэтому список требует корректировки и добавления.
Так же не решена проблема c удалением комментариев в html, и комментариев вида // (мне этого было достаточно)
---
Буду признателен за корректировку кода, для достижения лучшего результата.
DiAksID, господи, да откуда ж вас столько берется псевдогениев которые все знают. minify работает с JS и CSS файлами только, а речь идет по крайней мере о html,css,js,php как одно целое, следовательно не решает проблемы описанной выше (если код смешанный)
всё можно сделать, хотя и не одним, а последовательность 3-х/4-х preg_replace. аккуратно и так как нужно кодеру: и форматированные участки можно защитить от изменения, а уж комменты всех видов вырезаются вообще без проблем (вопрос о них, мягко говоря, выглядит смешно).
ЗЫ: времени на то что бы включить мозг и отладить этот простенький алгоритм нужно значительно меньше чем дождаться здесь "подарка". хотя каждому своё...
Ну конечно, как у вас все просто. Раз два и все. Тут куча разных мелочей и факторов, к примеру код может быть смешанным, в одном файле и php и js и html. В Js к примеру в конце строки не обязательно ставить ;, а если в одну строку то должно быть. Не говоря уже о единичных пробелах. И если у тебя 100 файлов, я неделю буду их вручную делать так.
Конечно можно написать код который это будет делать, но зачем изобретать велосипед если возможно кто-то его уже написал.
Например как здесь.
а делается все одной preg_replace буфера вывода...
Ну это грубо. Как в таком случае определить единичные пробелы которые лишние. Может у меня в тексте на странице есть единичные пробелы и я их всех удалю. Где >=2 впринципе можн и так.
К тому же что делать с комментариям.
UPD:
Ищется похожее на такое:
webtoolhub
так пишу вам используйте сессии
Прочитайте тему полностью, сессии уже обсуждались!
В смысле модератора, и таким образом, каким вы определяете пользователя в других местах. Посмотрите у любой кмс как там устроено где есть распределения прав, без никаких "скрытых" путей и файлов. Если файл может быть выполнен напрямую, или он отработает при прямом обращений без его включения в других файлах, должна быть проверка на право выполнением этим пользователем (юзером/гостем/модератором).
Не понял, опишите процедуру такой проверки. Если вы имеете в виду например если пользователь незалогинен то просто даже и не показывать ему этот инпут, то в этом и дело что если я могу напрямую обратиться к исполняющему файлу то как этот исполняющий файл проверит что я незалогинен. Он может проверить только посредством каких то параметров которые я ему передам (GET, POST). А эти параметры я могу отправить вручную
Что мешает на файл обработчик поставить проверку на выполнения только определенным лицам? У вас не совсем правильно построена логика работы. Обработка обязательно должны быть и на стороне сервера.
Это вы не совсем вникли в суть вопроса. Всмысле поставить проверку на выполнение только определенным лицам, каким образом? Если вы имеете в виду chmod то даже если я поставлю все только для рута, то запрос к этому файлу идет от браузера через аякс, а значит он просто не сработает в таком случае вообще.
А что мешает удалять всё что угодно через инпут? Значит у вас фильтр в аяксе, то есть на стороне клиента. Переносите основной фильтр на сторону сервера. На клиенте фильтр должен быть только для удобства пользователя, доверять ему нельзя.
Если этот скрипт можно будет выполнить только с определенного места, то я смогу контролировать человека который это делает. К примеру можно сделать чтобы доступ к странице где аякс на удаление был только у модератора. А это значит что удалять сможет только модератор
Опасаюсь: у меня есть несколько аякс выполнений. Где например человек чтото вводит в инпут, аякс забирает это значение и переправляет в файл который записывает это в базу или например удаляет это с базы. Тоесть если ктото может получить доступ к этому исполняющему файлу то он может вносить и удалять из базы все что угодно.
Прошу извинить, при аяксе я форм не использую просто инпуты, селекты. Я про форму написал для примера.