Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Preg_replace z tablica wielowymiarowa
Forum PHP.pl > Forum > Przedszkole
mirk
Mam funkcję która filtruje tekst wyszukuje i podstawia do zmiennych i tablic ich wartości:

  1. function szablon($text,$zmienne,$tablice){
  2. //funkcja filtrująca tekst zmienia postac zmiennej w tekscie [%zmienna%] na $zmienne['zmienna'];
  3. //$zmienne - tablica przechowujaca zmienne;
  4. //$tablice - tablica wielowymiarowa;
  5. //$text - text zamierajacy zmienne w postaci [%zmienna%]
  6. $text=preg_replace('/\[%(.*?)\%]/e', '$zmienne[\'${1}\']', $text);
  7. $text=preg_replace('/\{%(.*?)\%}/e', '$tablice[\'${1}\']', $text);
  8. return $text;
  9. }
  10.  
  11. $zmienne[zmienna1]='1';
  12. $zmienne[zmienna2]='2';
  13. $tablice[tablica1][1]='1111';
  14. $tablice[tablica1][2]='2222';
  15. $tekst="cos tam [%zmienna1%] oraz tablica {%tablica1%} dalej [%zmienna2%]";
  16.  
  17. //wywoluje funkcje:
  18. szablon($tekst,$zmienne,$tablice);


i dostaje: cos tam 1 oraz tablica array dalej 2;

Pytanie brzmi co należy zrobić aby wyświetlić zawartość całej tablicy $tablice w filtrowanym tekście w miejscu w którym pojawia się tablica?

aby otrzymac cos takiego: cos tam 1 oraz tablica 1111 2222 dalej 2 ;

Niby proste ale nie mogę sobie z tym poradzić, wiem że należy użyć w funkcji np:
  1. foreach ($tablice as $v1) {
  2. foreach ($v1 as $v2) {
  3. echo "$v2\n";
  4. }
  5. }

ale nie mogę połączyć foreach z preg_replace.
Noidea
  1. 'implode( " ", $tablice[\'${1}\'] )'
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.