Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zamiana tekstu na include.
!*!
post 30.12.2010, 14:28:48
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Jak można w PHP zamienić określony tekst na include lub inną opcje? Tworzę panel od edycji newsów i chciałbym dać możliwość wstawiania różnych rzeczy bez znajomości PHP np. wstawienie #tabela-wynik; includowałoby jakiś plik z np. połączeniem do bazy przy wyświetlaniu newsa.

  1. function zamien($text)
  2. {
  3. $e = array(
  4. '#tabela-wynik;' => 'wstaw wynik',
  5. '#tabela-ostatnie;' => 'wstaw ostatnie',
  6. '#tabela-nowe;' => 'wstaw nowe');
  7.  
  8. $text = strtr($text,$e);
  9. return $text;
  10. }


Czy jest w ogóle sposób na tego typu podmianę? Może taka operacja ma swoją nazwę?

Ten post edytował !*! 30.12.2010, 14:28:56


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
!*!
post 3.01.2011, 18:38:25
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Staram się to przerobić na klasę:

  1. class Theme{
  2.  
  3. public $theme;
  4. public $tpl;
  5. public $data;
  6. public $tr;
  7. public function __construct($theme)
  8. {
  9. $this->theme = $theme;
  10. $this->tpl = file_get_contents('theme/'.$theme.'/index.tpl');
  11. $this->data = Array();
  12. //$this->tr = Array();
  13. } //end construct();
  14.  
  15. public function add($name, $value='')
  16. {
  17. if (is_array($name)) //sprawdzam czy tablica
  18. {
  19. $this->data = array_merge($this->data, $name);
  20. echo '<span style=display:block;color:red>tak to tablica</span>';
  21. //var_dump($name);
  22.  
  23. foreach($name as $key => $value)
  24. {
  25.  
  26. if(mb_strpos($this->tpl,$key)!==false)
  27. {
  28. include_once 'ns-include/'.$value;
  29. $this->tr[$key] = ob_get_contents();
  30. }
  31.  
  32. }// end foreach();
  33. }
  34. } //end add();
  35.  
  36. public function execute()
  37. {
  38. //echo $this->tpl;
  39. return strtr($this->tpl, $this->tr);
  40. } //end execute();
  41.  
  42. }//end class Theme


  1. $view = new Theme('test');
  2. $data = array(
  3. '#nawigacja;' => 'nav.php',
  4. '#tabela-ostatnie;' => 'nav3.php'
  5. );
  6. $view-> add($data);
  7. echo $view-> execute();


Czy ktoś mógłby to sprawdzić i powiedzieć czy jest dobrze? Jeśli chodzi o zastąpienie tekstu, funkcją include ? Pomijam zabezpieczenia, nimi zajmę się później.

Ten post edytował !*! 3.01.2011, 18:38:40


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:40