2011-10-15 4 views
2

Я портирую YUI's CssCompressor, который имеет несколько Matcher, использует PHP. Для долгосрочного обслуживания я хотел бы как можно лучше оставить порт PHP похожим на оригинал Java (preg_replace_callback, конечно, работает, но резко меняет поток программы).Есть ли PHP-порт класса Matcher Java?

Итак, ли кто-нибудь портировал Matcher на PHP?

+1

Почему бы вам просто не использовать 'YUICompressor.php'? http://code.google.com/p/minify/source/browse/trunk/min/lib/Minify/YUICompressor.php Написание собственного порта звучит как головная боль обслуживания. –

+0

@MattBall, потому что это оболочка для Java, которая обычно недоступна на общем хостинге. –

+0

Похоже, никто не имеет - звучит как забавный проект! –

ответ

1

Вы ищете эквивалент while(find next match){ do stuff } в PHP (без использования preg_match_all)?

В этом случае используйте preg_match со смещением. Например:

offset = 0; 
while(preg_match(re, str, matches, PREG_OFFSET_CAPTURE, offset)){ 
    offset = matches[0][1] + strlen(matches[0][0]); 

    // do stuff 
} 
+0

Я уже использую эту технику в [моем собственном порту] (http://code.google.com/p/mrclay/source/browse/trunk/php/java/util/regex/Matcher.php), который не является Не завершу. –

Смежные вопросы