str/preg_replace - galeria zdjęć w miejsce znacznika

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
bielu000
Stały Bywalec
Stały Bywalec
Posty: 84
Dołączył(a): piątek, 8 maja 2009, 14:54

str/preg_replace - galeria zdjęć w miejsce znacznika

Post przez bielu000 »

Cześć, bez owijania w bawełnę - problem jest tego typu:

Użytkownik w w panelu administracyjnym, może stworzyć sobie galerię zdjęć, która podczas tworzenia otrzymuje jakiś identyfikator w postaci {gallery.id}. Następnie użytkownik, może poprzez wklejenie tego kodu w dowolne miejsce na stronie wygenerować tą konkretną galerię w miejscu gdzie dokładnie znajduje się ten znacznik. Samo pobranie tego znacznika, poprzez wyszukanie go w tekście nie jest problemem. Problemem jest zastąpienie go adresem do pliku z galerią zdjęć.

Po pierwsze to plik z galerią wczytuje się, nawet mimo, że dana fraza z identyfikatorem nie znalazła się na podstronie, ale to mniejsza z tym, zrobię z tego dwie funkcje, jedną sprawdzającą i drugą ładującą. Głównie chodzi o to, że nawet jeśli już uda mi się załadować galerię, to ładuje się ona w miejscu wykonania skryptu (zazwyczaj na górze strony), a nie zajmując miejsce grzecznie na miejscu frazy odpowiedzialnej za wyświetlanie danej galerii.

Postaram się to zobrazować troszkę dokładniej:

"To jest przykładowy tekst na stronie {{galeria}}, ten tekst ciągnie się dalej"
Po przetworzeniu:

<Galeria zdjęć> To jest przyładowy tekst na stronie (to tutaj powinna się wyświetlić galeria), ten tekst ciągnie się dalej.

Najśmieszniejsze jest to, że wyczytałem gdzieś na zagranicznym forum co nieco o ob_start() i użyciu tego, i jakimś sposobem otrzymałem efekt, jaki potrzebowałem,, zawartość pliku, który chciałem wczytać, zajmowała miejsce odpowiadającemu mu znacznikowi. Niestety, coś pogmerałem w kodzie i przestało to działać.

Macie jakieś pomysły?

Odrzucam, użycie funkcji eval, co prawda nie zagłębiałem się w szczegóły, ale podobno daje ona ciała pod względem wydajności i bezpieczeństwa.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: str/preg_replace - galeria zdjęć w miejsce znacznika

Post przez Morfidon »

Hej,

Wklej metodę odpowiedzialną za podmianę.

Pozdrawiam
bielu000
Stały Bywalec
Stały Bywalec
Posty: 84
Dołączył(a): piątek, 8 maja 2009, 14:54

Re: str/preg_replace - galeria zdjęć w miejsce znacznika

Post przez bielu000 »

Hej, wrzucam kod.

Zawartość głównego pliku http://wklej.org/id/1881103/
Zawartość pliku index.html http://wklej.org/id/1881102/

Co działa nieprawidłowo? Skrypt po napotkaniu na określony znacznik, sprawdza czy istnieje plik o nazwie przyporządkowanej do danego wzoru, jeśli tak to go dołącza. Niestety - po pierwsze dołącza go w miejscu wykonywania skryptu przeszukania, oraz dołącza go tylko raz.
Miałem już działające rozwiązanie, które powstało przez dodanie tutaj do kodu w odpowiednie miejsca kombinacji właśnie z ob_start, itp, tyle, że coś namieszałem i na chwilę obecną nie mogę sobie przypomnieć jak to wyglądało.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: str/preg_replace - galeria zdjęć w miejsce znacznika

Post przez Morfidon »

A co jest uruchamiane index.html czy ten plik .php?

Zastosuj ob_start w pliku index.html jeśli jest to plik uruchamiany jako pierwszy. W końcu chcesz zatrzymać buforowanie pliku html dopóki nie zostanie podmieniona zawartość na nową.
bielu000
Stały Bywalec
Stały Bywalec
Posty: 84
Dołączył(a): piątek, 8 maja 2009, 14:54

Re: str/preg_replace - galeria zdjęć w miejsce znacznika

Post przez bielu000 »

Hej zmieniłem include, na filte_get_contents i udało mi się poniekąd otrzymać to czego oczekiwałem ;)
Post Reply