Спасибо, мануал всё объяснил.
Но вот теперь другой вопрос, ведь в preg_replace нельзя указать на подмаску шаблона(тела функции) и закодировать её. Так же нельзя вытащить имя функции(что тоже нужно),ведь так?или есть вариант замены на только что найденный код?
-~{}~ 05.10.07 17:12:
вроде бы ответ нашёлся...
function decode_func($matches)
{
return '<function name="'.$matches[3].'">'.
base64_decode($matches[2]).'</function>';
}
echo preg_replace_callback('~
<script.*>
(.*)
(function\s+([\w]+)\([^\)]*\)\s+{.*})
(.*)
</script>
~xUis', 'decode_func', $html);
но последняя загвоздка в том, что если в функции несколько }}}, то тело функции будет неполностью.
можно как-то указать, что в шаблоне нужно взять последнюю закрывающую скобку?
-~{}~ 05.10.07 17:28:
странно...если убрать квантифактор U ,то как раз берётся последняя скобка.
Всё-таки немного непонятно, что такое "...инвертировать жадность квантификаторов..."?