Strona 1 z 1

Jak zaincludować jedną stronę w drugą?

: wt gru 11, 2007 7:55 pm
autor: Wade
Witam, mam problem z includowaniem strony php. Szukałem na google rozwiązania ale te wszystkie instrukcje includowania nie rozwiązują mojego problemu.
Załóżmy, że mam stronę "index.php", a w <head> są linki do skryptów js i do stylu css. Strona zrobiona na div'ach, a na środku strony chcę wyświetlać inną stronę php, która znajduje się w innym katalogu, niż "index.php" i ścieżka jej to: "slideshow/slideshow.php". W jej kodzie jest tylko struktura mechanizmu, który wyświetla obrazki (a więc niewiele kodu xhtml i chciałbym aktualizować ten kod, tzn zmieniać opisy pokazywanych obrazków w tym mechanizmie co jakiś czas, dlatego potrzebuje mieć ten mechanizm w osobnym pliku/stronie php)). Są w niej więc znaczniki: <html>, <head> i <body>, i w <head> również mam linki do js i do stylu css, ponieważ mechanizm ten ich potrzebuje. I teraz jak zainkludować tę stronkę z mechanizmem pokazywania zdjęć do indexu.php? Prosze o podpowiedzi jakiej dokładnie instrukcji includowania użyć.

Re: Jak zaincludować jedną stronę w drugą?

: śr gru 12, 2007 12:57 am
autor: Cotter
Includowanie nie działa w ten sposób. To że includujesz plik oznacza po prostu, że jego zawartość (po przetworzeniu ewentualnego kodu php) znajdzie się w danym miejscu w pliku w którym znajduje się żądanie.

Posługując się przykładem:

plik a.php:

Kod: Zaznacz cały

to znajdzie się przed include
<?php include 'b.php'; ?>
to znajdzie się po include
plik b.php:

Kod: Zaznacz cały

to zostanie wstawione do a.php
Czyli w rezultacie jeżeli uruchomimy w przeglądarce plik a.php otrzymamy:

Kod: Zaznacz cały

to znajdzie się przed include
to zostanie wstawione do a.php
to znajdzie się po include
Za pomocą jednego includowania nie można w prosty sposób podmieniać różnych oddzielnych sekcji kodu html (head, body)

Trzeba mieć na przykład oddzielne pliki dla sekcji head i sekcji body:
heada.php
headb.php
bodya.php
bodyb.php

w plikach z a na końcu będą znajdowały się nagłówki i ciało dla strony a.php
z kolei w pliku z b będą dla b.php

Teraz plik a.php może wyglądać następująco:

Kod: Zaznacz cały

<html>
<head>
<?php include 'heada.php'; ?>
</head>
<body>
<?php include 'bodya.php'; ?>
</body>
</html>
Analogicznie będzie wyglądał plik b.php.

Oczywiście można to robić lepiej, jednak wymaga troszkę więcej niż nikłej znajomości PHP i mocno zalecam głębsze poznanie tego języka.