Задать вопрос
  • PHP tokenizer на Python?

    Lond
    @Lond Автор вопроса
    Основная цель — выделять не-php файлы с php-кодом в них. Суть всего приложения — отлавливать разнообразные php-шеллы в папке с данными. В данный момент эта функциональность реализована на простых регэкспах, что даёт огромное кол-во ложных срабатываний на картинках, содержащих сигнаруты, например "<?", тут либо очень хитро нужно построить регулярку, либо скромно надеяться, что кто-то уже реализовал это за тебя… Проблема в том, что php позволяет не ставить пробел после открытия этих скобок, т.е. выражение "<?customFunction();" будет вполне работоспособным — вот мне и подумалось, что родной лексер php в любом случае должен уметь обрабатывать такое.

    Сканирование директорий идёт в несколько потоков, так-что дёргать php для каждого файла мне не представляется возможным (честно говоря, даже если и есть способ обрабатывать несколько файлов в одной инстанции, я не особо задумывался над этим, поскольку не-гетерогенная среда мне не внушает доверия в любом случае).

    В принципе, появилась идея портировать этот лексер, как модуль для python — в таком случае не будет потери в скорости (потому-что С, а если и будет, то небольшая), хотя как там с исходниками — я ещё не смотрел.