Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_replace, HELP ME !!!!!!!!!!!!
Apo
post
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Witam
Zaczełem pisac swoją nową klase pagera i natrafiłem na problem. Przy wyświetlaniu danych. Wygląd(template) danej rzeczy na stronie wczytuje z pliku przez file_get_contents. Przykładowy szablon wygląda tak:
  1. <?php
  2. <h2>{tytul}</h2><br /><br />
  3. TRESC: {tresc}.
  4. ?>


No i jak widać dane między {} zostaną zamienione na odpowiednie dane podane w skrypcie. Odpowiada za to metoda parse:

  1. <?php
  2. public function parse()
  3.   {
  4.   $this->parsed = '';
  5.   foreach($this->blocks as $what => $on)
  6.     {
  7.       $this->parsed .= preg_replace('#{'.$what.'}#', $on, $this->template); // tu jest pewnie źle
  8.     }
  9.   return $this->parsed;
  10.   }?>

No i $this->blocks jest tablica zawierająca elementy do podmiany. np:
  1. <?php
  2. $pager->blocks = array('co podminic' => 'na co');
  3. ?>

Skryptu używam tak:
  1. <?php
  2. $pager = New Pager($ile, 2);
  3. while($array = mysql_fetch_array($query, MYSQL_ASSOC))
  4. {
  5. $pager->load('text'); // ładuje plik do zmiennej
  6. $pager->blocks = array('tytul' => $array['tytul'], 'tresc' => $array['tresc']); //tablica do podmiany
  7. }
  8. $pager->parse();
  9. echo $pager->parsed;
  10. ?>


No i chodzi o to że preg_replace źle działa bo wygląd po parsowaniu wygląda tak:
  1. <?php
  2. to jest tytul newsa
  3.  
  4.  
  5. TRESC: {tresc}.
  6. {tytul}
  7.  
  8.  
  9. TRESC: to jest tresc newsa
  10. ?>


A powinien tak:
  1. <?php
  2. to jest tytul newsa
  3.  
  4. TRESC: to jest tresc newsa
  5. ?>

Więc zastają znaczniki {} które powinny zostac zamienione (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował Apo 21.02.2006, 15:04:32
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: 16.10.2025 - 23:47