Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> do zmiennej przypisac includowany plik
Czechu
post 25.09.2004, 18:12:50
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.02.2004

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


Witam.
Mam plik z kodem HTML w którym znajdują się znaczniki np. {linki} {archiwum} {ksiega} ... chciałbym ten plik includować do strony php lecz przed zaincludowaniem zmienić powyzsze znaczniki na polecenia php require("linki"); itd...

czy ktoś mógłby mi powiedziec jak to zrobić?

myslałem nad str_replace ale aby skorzystac z tej funkcji musze miec do jakiejś zmienej przypisaną zawartosc pliku... i tutaj pojawia się problem...

a moze macie inne pomysły?

z góry dziekuje za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Lukasz Luczak
post 25.09.2004, 18:52:58
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 24.05.2004

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


Witam,

  1. <?php
  2. $zawartosc = file_get_contents( $plik);
  3. $zawartosc = str_replace( $co, $naco, $zawartosc);
  4. echo( $zawartosc);
  5. ?>


Pozdrawiam,
Go to the top of the page
+Quote Post
Czechu
post 25.09.2004, 19:35:22
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.02.2004

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


wszystko było by spoko gdyby nie... Fatal error: Call to undefined function: file_get_contents() sad.gif

i co teraz? moze błąd w druku?


Pozdrawiam, i prosze o pomoc;)

Ten post edytował Czechu 25.09.2004, 19:35:50
Go to the top of the page
+Quote Post
bregovic
post 25.09.2004, 19:40:24
Post #4





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


to oznacza ze zdecydowanie powinienes upgrade'owac twoja wersje php - bo musi byc nizsza niz 4.3.0...

jesli zas nie mozesz tego zrobic to zrob tak:
  1. <?php
  2. include $plik;
  3. $zawartosc = ob_get_clean();
  4. $zawartosc = str_replace($co, $naco, $zawartosc);
  5. ?>
lub cos takiego...


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
tiraeth
post 25.09.2004, 19:44:15
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


  1. <?php
  2.  
  3. $tpl_File = split(&#092;"n\", file(\"nazwapliku.html\"));
  4.  
  5. $tpl_File = preg_replace('/{(.*?)}/', '<? include(1); ?>', $tpl_File);
  6. ?>


tylko właśnie nie pamiętam jaka funkcja odpowiadała za wykonanie kodu zawartego w stringu......

btw. kiedyś napisałem taki prosty system tpl smile.gif poszukaj w moich postach biggrin.gif
Go to the top of the page
+Quote Post
FiDO
post 25.09.2004, 19:47:39
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Temat zdecydowanie nie Pro.. przenoszę.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Czechu
post 25.09.2004, 19:50:59
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.02.2004

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


moja wersja php to 4.1.2 , a to dlatego ze ludzie którzy prowadzą servery lustrzane z pakietami debiana (np. security.debian.org) juz od dawna nie udostepniali nowszych stabilnych wersji php, i nie ma jak zainstalowac tego przez apt-get , a zwyczajnie nie chce mi sie motac z tym wszsytkim.

wracajac do sprawy....

  1. <?
  2. include main;
  3.  
  4.  $w = ob_get_clean();
  5.  $szukaj = array('{linki}', '{archiwum}', '{blog}');
  6.  $zamien = array(&#092;" <? require('linki.php'); ?> \", \" <? require('arch.php'); ?> \", \" <? require('blog.php'); ?> \");
  7.  $wynik = str_replace($szukaj, $zamien, $w);
  8.  
  9.  print(iso(\"$wynik\"));
  10. ?>

a wynik....

Fatal error: Call to undefined function: ob_get_clean()

worriedsmiley.gif

Ten post edytował Czechu 25.09.2004, 20:23:06
Go to the top of the page
+Quote Post
silent
post 25.09.2004, 22:34:10
Post #8





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


  1. <?
  2. include main;
  3.  
  4. $w = ob_get_contents();
  5. $szukaj = array('{linki}', '{archiwum}', '{blog}');
  6. $zamien = array(&#092;" <? require('linki.php'); ?> \", \" <? require('arch.php'); ?> \", \" <? require('blog.php'); ?> \");
  7. $wynik = str_replace($szukaj, $zamien, $w);
  8.  
  9. print(iso(\"$wynik\"));
  10. ?>
Go to the top of the page
+Quote Post
Czechu
post 26.09.2004, 09:57:26
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.02.2004

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


Dziękuję wszystkim za pomoc, ostatni podany kod php jest prawidłowy, plik ładuje się do zmiennej , znaczniki {} zamieniają sie na require ale...... nic poza tym... polecenia require nie wykonują się tylko pozostają w tekscie jako tekst w dodatku niewidoczny (widoczny tylko w podglądzie źródła)

co mozna na to poradzic? sad.gif
Go to the top of the page
+Quote Post
bregovic
post 26.09.2004, 10:26:19
Post #10





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


mozesz zapisac ten plik i go uruchomic... a co do php to twoja wersja jest na prawde stara - zdecydowanie zalecalbym ./configure && make && make install na ostatniej stabilnej wersji...


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
Czechu
post 26.09.2004, 11:26:41
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.02.2004

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


cóz... wszystkie porady pomogły, ale zadna z osobna nie była dla mnie dobra:)

zebrałem wszystko do kupy i zrobiłem w koncu to o co mi chodzi... mianowicie a panelu edycyjnym zastosowałem...

  1. <?
  2.  
  3. {
  4. if (!(isset($act)))
  5. {
  6.  
  7. print(iso(&#092;"<div id=top><br>Edytor HTML<br><br></div>
  8. <b>Zmień wygląd:</b><br><br>
  9. <a href=?func=edytor&html=../main>Strona główna</a><br>
  10. Wpis do bloga<br>
  11. Archiwum<br>
  12. Księga gości<br>
  13. Wpis do księgi<br>
  14. Strona z komentarzami<br>
  15. Komentarz<br>
  16. Arkusz stylów<br><br>&#092;"));
  17.  
  18. if ($html<>&#092;"\" && file_exists($html)) { 
  19. echo&#092;"<p>Edycja pliku: <b>$html</b> 
  20. <form action=?func=edytor&act=zap method=post> 
  21. <input type=hidden name=html value=$html> 
  22. <textarea name=tekst rows=30 cols=70>&#092;"; 
  23.  
  24. $f = fopen($html,&#092;"r\"); 
  25. while(!feof($f)) echo fread($f,1024); 
  26. fclose($f); 
  27.  
  28. $w = ob_get_contents();
  29.  
  30.  $szukaj = array(&#092;" <? require('linki.php'); ?> \", \" <? require('arch.php'); ?> \", \" <? require('blog.php'); ?> \");
  31.  $zamien = array(\" {linki} \", \" {archiwum} \", \" {blog} \");
  32.  $wynik = str_replace($szukaj, $zamien, $w);
  33.  
  34. echo\"$wynik</textarea><br><input type=submit value=Zmień></form>\"; 
  35.  
  36. }else
  37. if($act == zap)
  38. {
  39.  
  40.  $w = \"$tekst\";
  41.  $szukaj = array('{linki}', '{archiwum}', '{blog}');
  42.  $zamien = array(\" <? require('linki.php'); ?> \", \" <? require('arch.php'); ?> \", \" <? require('blog.php'); ?> \");
  43.  $t = str_replace($szukaj, $zamien, $w);
  44.  
  45. $f=fopen($html,\"w\");
  46. fputs($f, stripslashes($t)); 
  47. fclose($f);
  48.  
  49. print(iso(\"<div id=top><br><meta http-equiv=refresh content='2; url=?func=edytor'> $html został zmodyfikowany!<br><br>\"));
  50.  
  51. }
  52. ?>



natomiast w pliku index.php po prostu

Kod
include main;



moze troche kombinowania jest... ale efekt koncowy jest taki jaki chciałem.. czyli wszystko działa poprawnie:)

jesli macie jakies pomysły na usprawnienie powyzszej metody, byłbym wdzięczny:)
Go to the top of the page
+Quote Post

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: 25.07.2025 - 10:06