Po kolei... jest to fragment kodu aplikacji phprojekt 5.1, funkcja ta ma odpowiadac (tak wydedukowalem) za podmiane pewnych lancuchow znakow na aktywne zmienne - jako metoda na uzywanie zmiennych jezykowych w calym skrypcie (metoda moim zdaniem tragiczna). Rzecz w tym, ze ponizsza funkcja w liniach oznaczonych #HERE! wywala błąd:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in
/home/rylik/public_html/project/lib/dbman_lib.inc.php(157) : regexp code on line 1

  1. <?php
  2. function enable_vars($string) {
  3. // insert by Boris: rewrite __(" to __(' so that it is recognized by the reg-ex below
  4. if (strpos($string, '__("') !== false) {
  5. $string = preg_replace("/__("(.*?)")/", "__('1')", $string);
  6. }
  7. if (strpos($string, "__('") !== false) {
  8. $pattern = "/(__('.*?'))/e";
  9. // replace language function
  10. $string = preg_replace($pattern, "''.eval('return 1;').''", $string); #HERE!
  11. // replace some other specials like concatenating operators
  12. $string = preg_replace("/(^.*$)/e", "eval('return "1";')", $string); #HERE!
  13. return $string;
  14. }
  15. $ret = preg_replace_callback('#${?(w+)}?#si', 'enable_variable', $string);
  16. $ret = preg_replace_callback('#@(w+)@#si', 'enable_constant', $ret);
  17. return $ret;
  18. }
  19. ?>

po zakomentowaniu tych funkcji widze: __('Project Name') zamiast zawartosci zmiennej $_lang["Project Name"]
Zwracam się o pomoc, bo regexp i patterny to moja odwieczna bolączka ... w swoich skryptach zmienne jezykowe trzymam w stalych wiec ta metoda jest mi zupelnie obca ideowo i artystycznie blinksmiley.gif

MySQL:: 3.23.58 php:: 4.3.10 Server WWW:: Apache Server Interface for php:: apache2handler

Rybik