Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][regexp] Podmiana frazy na aktywną zmienną
rybik
post
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

Ostrzeżenie: (0%)
-----


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

Ten post edytował rybik 31.07.2006, 18:46:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:37