Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczna zmienna zależna od tekstu
Forum PHP.pl > Forum > PHP
Dawid0
Witam, mam taki kod:

  1. <?php
  2.  $templates = "[lang]News[/lang]\n[lang]board[/lang]";
  3.  echo preg_replace( '#[lang](.*)[/lang]#iU', '$language['1']', $templates);
  4.  ?>


Nie działa on poprawnie... Chcę żeby to co znajduje się między tagami [lang] zamieniło się na prawdziwą zmienną, która będzie zawierać tekst z tablicy $language.
wrzasq
nie mozesz uzyc tego w ten sposob. musisz najpierw uzyc preg_match_all(), a potem wykonywac na dopasowanych lancuchac str_replace() podstawiajac zmienne w PHP - preg_replace() mozesz uzyc tylko do zamiany samego tekstu.
bim2
@wrzasq głupoty gadasz i tyle
  1. <?php
  2. $language['News'] = 'Newsiki';
  3. $language['board'] = 'forum';
  4.  
  5. $templates = "[lang]News[/lang]\n[lang]board[/lang]";
  6.  echo preg_replace( '#[lang](.*)[/lang]#iUe', '$language['1']', $templates);
  7. ?>

Wynik:
Cytat
Newsiki forum
Dawid0
wrzasq, dzięki wielkie

  1. <?php
  2. preg_match_all("#[lang](.*)[/lang]#iU", $templates, $templates_for, PREG_SET_ORDER);
  3.  
  4.  foreach ($templates_for as $val)
  5.  $templates = str_replace('[lang]'.$val[1].'[/lang]', $language[$val[1]], $templates);
  6. ?>


bim, To tylko e mi zabrakło, a jak tam zsyp snitch.gif i cms?
Louner
http://pl.php.net/manual/en/function.preg-...ce-callback.php

Pointeresuj się tym. smile.gif
bim2
@Louner
W takim wypadku nie potrzeba ale później może się przydać smile.gif

http://www.gajdaw.pl/php/wyrazenia-regular...torial.html#R19 <- obejrzyj to. Nie ma znacznika e bo występuje on tylko w PHP (?)

Co do CMS'a nieźle. Mamy już jądro. Zresztą takie rzeczy to na PW.
wrzasq
@bim2: o, dzięki wielkie, szczerze mowiac zyle w blednym przekonaniu wiele czasu, bo sam kiedys sie z tym meczylem, ale musialem cos niezle spieprzyc w ten czas winksmiley.jpg. ja takze dziekuje tongue.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.