OK, może to zabrzmi trochę szaleńczo, ale trzymajcie mnie tutaj przez chwilę.Parser SSI napisany w PHP?
Pracuję na stronie, w której standard ma używać SSI do umieszczania nagłówków, stopek i menu stron. Załączone pliki używają warunkowości SSI do obsługi różnych przeglądarek, niektórych zagnieżdżeń #include i niektórych sztuczek #set/#if w celu podświetlenia bieżącej strony w menu. Innymi słowy, jest to więcej niż tylko #instrukcja dyrektyw w SSI.
Jestem pewien, że niektórzy mogą spierać się z estetyką, ale w rzeczywistości działa całkiem ładnie, dla statycznego HTML.
Teraz problem: chciałbym "#include" te same pliki html z nagłówka i stopki SSI ze skryptów PHP, unikając w ten sposób duplikowania kodu i zachowując jednolity wygląd witryny. Gdyby PHP działało w zwykłym środowisku mod_php, byłbym w stanie to zrobić za pomocą funkcji wirtualnej() PHP. Niestety strona używa FastCGI/suexec do uruchomienia PHP (aby każdy VirtualHost mógł działać jako inny użytkownik), a to zrywa wirtualne().
Używam dość prostego parsera SSI napisanego w PHP (obsługuje #includes i kilka naprawdę prostych instrukcji #if), ale chciałbym bardziej ogólnego rozwiązania. Więc, zanim wyjdę na jaw i napiszę jakiś prawdopodobnie błędny, bardziej kompletny parser SSI, czy ktoś wie o pełnym parserie SSI napisanym w PHP? Oczywiście jestem również otwarty na inne rozwiązania, które działają zgodnie z ograniczeniami, które opisałem.
Dziękuję bardzo za poświęcony czas.
Nie będę wzywał plików dołączonych do SSI z zagnieżdżaniem "# include' i' # ustawieniem'/'# jeśli' oszustwem "* statycznym * HTML. ;) W przeciwnym razie ciekawe pytanie. : D – deceze
Jedyną implementacją, o której wiem, jest http://nanoweb.si.kz/manual/mod_include.html - ale to tylko implementuje trzy standardowe funkcje i nie stanowi większego parsera. – mario
@deceze: Cóż ... są "statyczne" w tym sensie, że każdy plik HTML żądany przez użytkownika generuje za każdym razem ten sam wynik. Zgadzam się jednak, że pliki dołączone do SSI w ogóle nie są statyczne. –