Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

Problem z preg_replace_callback

Zdecydowałeś się na tworzenie interaktywnych stron przy pomocy PHP? Chcesz w łatwy i szybki sposób zarządzać danymi na swojej stronie? Tutaj znajdziesz pomoc w napotkanych przy tym trudnościach.

Problem z preg_replace_callback

Post 20.12.2016, 11:31:00

Kiedyś miałem taki kod:

Kod: Zaznacz cały
// WYCIĄGNIĘCIE Z BAZY TEKSTÓW DZIAŁU DANEGO TŁUMACZENIA
   $q = 1; //USTAWIENIE LICZENIA TABLICY OD 1 ABY NUMERACJA BYLA ZGODNA Z NUMERACJĄ SZABLONU
   $jakijezyk = $_SESSION['SSlang'];
   if (isset($_GET['toshow'])):
      $jakastrona = $_GET['toshow'];
   else:
      $jakastrona = "ofirmie";
   endif;
 
   $wynikdb = mysqli_query($baza, "SELECT $jakijezyk FROM $jakastrona"); 
   while ($wypisz=mysqli_fetch_row($wynikdb))
    {
       $podstaw[$q] = $wypisz[0]; //PODSTAWIANIE DO TABLICY KOLEJNYCH TŁUMACZEŃ Z BAZY
      $q++;
    }

  $szablondb = mysqli_query($baza, "SELECT $jakastrona FROM szkielety");
   while ($szablonwypisz = mysqli_fetch_assoc($szablondb))
    {
       $dotlumaczenia = $szablonwypisz[$jakastrona];
    }
   $kod_do_wyswietlenia = preg_replace("/\[TEKST_(.{1,2})\]/e", '$podstaw[\1]', $dotlumaczenia);
    // PODSTAWIAM TŁUMACZENIA TEKSTÓW
   

   echo $kod_do_wyswietlenia;
    // WYŚWIETLENIE CAŁEJ ZAWARTOŚCI STRONY
   


Kod wczytuje htmla ze znacznikami [TEKST_xx] które podmienia na tekst w odpowienim języku z bazy danych po zmianie serwera i nowyszm php5.6
nie mogę sobie poradzić z funkcją preg_replace_callback

stworzyłem coś takiego ale wyświetla zamiast tekstw liczby xx zamiast podstawionego tekstu z wiersza xx :(

Kod: Zaznacz cały
   $kod_do_wyswietlenia = preg_replace_callback("/\[TEKST_(.{1,2})\]/",
          function($podstaw) {
        static $id = 1;
        $id++;
        return $podstaw[1];
    },
    $dotlumaczenia);
    echo $kod_do_wyswietlenia;


Czy ktoś mógłby zerknąć na to okiem?
McRINO
Posty: 6
Dołączył(a): 11.03.2013

Re: Problem z preg_replace_callback

Post 21.12.2016, 12:52:13

Witam ponownie.

Z uwagi na duże zainteresowanie wątkiem (liczba wejść) Chciałbym poinformować, że problem rozwiązałem dla potomnych poniżej kod który działa poprawnie - może się komuś przyda.

Kod: Zaznacz cały
$kod_do_wyswietlenia = preg_replace_callback("/\[TEKST_(.{1,2})\]/","PodstawTlumaczenia",$dotlumaczenia);
function PodstawTlumaczenia($m) {
   global $podstaw;
   return $podstaw[$m[1]];
   }
echo $kod_do_wyswietlenia;


Powyższy kod jest tym drugim z pierwszego posta.

Pozdrawiam Wszystkimch
McRINO
Posty: 6
Dołączył(a): 11.03.2013


Powrót do PHP i bazy danych


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Ahrefs [Bot] i 2 gości

Hosting, Domeny, SSL
iCash

Subskrypcja

Mamy 50185 zarejestrowanych użytkowników.
Najnowszy użytkownik: sskijop


Nasi użytkownicy napisali:

  • 935022 wiadomości
  • w 246325 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)