![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 701 Pomógł: 0 Dołączył: 26.06.2002 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Taki problem:
mamy sobie plik template.php ... Kod <?
$filedirectory = 'http://localhost/template'; $filepath = 'pliki'; $template = 'template_.php'; function die_nice($message){ die("$message"); } if ( !$file) die_nice("Zle nazwane odwolanie do skryptu! Powinno wygladac tak: template.php?file=filename"); if ( !file_exists("$filepath/$file") ) die_nice("Plik $file nie istnieje!"); $fp = fopen ("$template", "r") or die_nice("Nie mozna odnalesc tempalety: $template"); $contents = fread ($fp, filesize ($template)); fclose ($fp); $fpf = fopen ("$filepath/$file", "r") or die_nice("Plik $file nie istnieje!"); $lines = file("$filepath/$file"); list($tyt,$tresc) = explode("::", $lines[0]); $tytul = strtoupper($tyt); fclose ($fpf); $contents = str_replace("[TRESC]", $tresc, $contents); $contents = str_replace("[TYTUL]", $tytul, $contents); $contents = str_replace("ą", "±", $contents); $contents = str_replace("ś", "¶", $contents); $contents = str_replace("ź", "Ľ", $contents); $contents = str_replace("Ą", "ˇ", $contents); $contents = str_replace("Ś", "¦", $contents); $contents = str_replace("Ź", "¬", $contents); print stripslashes($contents); ?> ... ktory jest odpowiedzialny za wypelnienie pliku template_.php ... Kod <html>
<body> <h1>[TYTUL]</h1><br><hr> <h4>[TRESC]</h4> </body> </html> ... zawartoscia pliku x.txt ... Kod jakis tam tytul::i jakas tam tresc...
... odwoluje sie do pliku template.php w ten sposob template.php?file=x.txt i wszystko gra! ale chcialbym zmienic to na globala, zrobilem to w ten sposob (zawartosc pliku indexx.php): Kod <a href=indexx.php?id=1>indexx.php?id=1</a><br><br>
<? if(!isset($id)) { include("1.php"); } else { if($id==0){ include("1.php"); } elseif($id==1){ include("template.php?file=x.txt"); } } ?> oczywiscie takie rozwiazanie nie dziala bo php nie moze odnalezc pliku template.php?file=x.txt Cytat Warning: Failed opening 'template.php?file=x.txt' for inclusion (include_path='') in c:foxservwwwtemplateindexx.php on line 6
czy mozna jakos temu zaradzic?? chodzi o to aby odwolanie do template.php?file=x.txt dzialalo tak jak bym sie odwolywal do zwyklego pliku template.php z instukcja ?file=x.txt a nie qrna do template.php?file=x.txt ... moja wiedza o php jest dosc skromna dlatego bardzo prosze o pomoc ... od dawna obserwuje to forum i wiem ze dla was ludziska taki problem to nie problem :wink: |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
końcowa pochwałą zmobilizaowała meni do pisania, stąd powiem ci, że nie musisz torzyć adresu w postaci 'nazwa.php?file=x.txt' gdyż wszystkie zmienne dostępne w miejscu gdzie includujesz inny plik, są dostępne również w tym pliku. Czyli:
Kod ... Reszta w manualu
else { if($id==0){ include("1.php"); } elseif($id==1){ $file='x.txt'; include 'template.php'; } -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 701 Pomógł: 0 Dołączył: 26.06.2002 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
no bobra.. bo zeczywiscie zabralem sie do tego od zlej strony :idea: ... ale teraz mam inny problem:
moim plikiem template_.php jest np cos takiego: Kod <html>
<body> <h1>[TYTUL]</h1><br><hr> <h4>[TRESC]</h4> <?php include("jakistamplik.php"); ?> // *ta linia </body> </html> * codzi o to ze plik template_.php ktory jest "przerabiany" przez template.php nie implementuje jakiegokolwiek kodu napisanego w php... probowalem juz tylu sposobow i nic.. tzn.. po uzupelnieniu template_.php zawartosica pliku x.txt kod php dalej jest niewidoczny.. ale jak edytuje uzupelniony plik w notepadzie kod jest pokazywany (nie iem dla czego :?: :?: ) - o co chodzi :?: |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 407 Pomógł: 0 Dołączył: 24.10.2002 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
najpierw mowisz ze:
>> $fp = fopen [...] $contents = fread ($fp, filesize ($template)); [..] $contents = str_replace("[TRESC]", $tresc, $contents); $contents = str_replace("[TYTUL]", $tytul, $contents); [..] << a wiec dolaczasz swoj plik jako string... czyli ci nie zinterpretuje ci komendy include("cokolwiek").. niech plika nadrzedny ma dodatkowe komendy php.. a szablon niech ma czysty html ze wstawkami [[costam]] .. ja tak robie.. o to chodzilo? ![]() -------------------- Zalew :: http://jakubzalewski.info
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 701 Pomógł: 0 Dołączył: 26.06.2002 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Kod a szablon niech ma czysty html ze wstawkami [[costam]] .. ja tak robie.. no zeczywiscie :oops: ale "sierota" ze mie sam sobie problem robie... tyle ze chcialem sie dowiedziec czy istniej spodob abym nie musial zmieniac template'y na HTML bo tam duuzoo kodu php jest :? ale dobre i to... wielkie dzieki zalew..pozdrawiam[/quote]
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 18:10 |