Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Preg_replace z tablica wielowymiarowa
mirk
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 9.02.2011

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


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.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 22.08.2025 - 12:49