Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zagłębienie w kodzie...
Forum PHP.pl > Forum > PHP
Vasquez21
Witam

Chciałem połączyć działanie mojej stronki z plikami html generowanymi przez pewną grę. Jako, że pliki te maja byc również częścią strony musiałem stworzyć stronkę, która odpowiadałaby za wywoływanie wszystkich stron generowanych przez grę. Oto jak wygląda ta podstronka:

  1. <?php
  2. include(&#092;"sprses.php\"); //sprawdza sesję
  3. $strona = $HTTP_GET_VARS['strona']; //sprawdza który link został wybrany
  4. include(&#092;"gora.php\"); //ładuje logo strony
  5. include(&#092;"style.php\"); //ustawia style
  6. include(&#092;"menu_gora.php\"); //menu górne...
  7. include(&#092;"html/$strona\"); //noi oczywiście ta stronka... 
  8. ?>


I teraz problem pojawia się, wtedy gdy na wybranej stronie są odnośniki do innych podstron... mianowicie są to ścieżki orginalne które wygenerowała gra. Ja natomiast potrzebowałbym ponownie otworzyć daną stronkę w właśnie tym kodzie podanym wyżej. Czy jest na to jakiś sposób ?

Z góry dziękuję za wszelką pomoc.
rogrog
przechwytywanie outputu i podmienianie linków
Vasquez21
hmmm nie bardzo rozumiem sad.gif
rogrog
Cytat(Vasquez21 @ 2004-12-02 01:51:26)
Czy jest na to jakiś sposób ?

pytałeś się czy jest jakiś sposób. Odpowiedź powinna być boolowska smile.gif tak albo nie. No więc ja Ci mówię że tak. A nawet zrobiłem więcej niz prosiłeś - rzuciłem hasło co możesz zrobić.

Trzeba było mówić że chcesz wytłumaczenie jak to zrobić.

możesz np. coś takiego na początku strony
  1. <?php
  2.  
  3. function ob_replace_links( $str )
  4. {
  5.  
  6. // tutaj jakiś regexp poprawiający linki
  7. // w to się nie zagłębiam może ktoś Ci pomoże, a jak nie ucz się
  8. // wyrazen regularnych i sam napisz
  9. $str = preg_replace( 'sth', 'sth', $str );
  10.  
  11. return $str;
  12.  
  13. }
  14.  
  15. ob_start( 'ob_replace_links' );
  16.  
  17. ?>
Vasquez21
ok spróbuję zawalczyć...
dzięki...

Grrr... i jednak mi nie wychodzi wrzuciłem na początek kodu to co mówiłeś żeby sprawdzić czy wogóle to działa. Nic mi się jednak teraz nie ładuje, zapewne coś źle wkleiłem.

  1. <?php
  2. function ob_replace_links( $strona )
  3. {
  4.  
  5. // tutaj jakiś regexp typu
  6. // w to się nie zagłębiam może ktoś Ci pomoże, a jak nie ucz się
  7. // wyrazen regularnych i sam napisz
  8. $strona = preg_replace( '', '', $strona );
  9.  
  10. return $strona;
  11.  
  12. }
  13.  
  14. ob_start( 'ob_replace_links' );
  15.  
  16. include(&#092;"sprses.php\"); //sprawdza sesję
  17. $strona = $HTTP_GET_VARS['strona']; //sprawdza który link został wybrany
  18. include(&#092;"gora.php\"); //ładuje logo strony
  19. include(&#092;"style.php\"); //ustawia style
  20. include(&#092;"menu_gora.php\"); //menu górne...
  21. include(&#092;"html/$strona\"); //noi oczywiście ta stronka... 
  22. ?>


Wydaje mi się,że powyższa funkcja w tym akurat momencie powinna nic nie zmieniać. W takim razie dlaczego otrzymuję pustą stronę ?

Mógłbym prosić o jakiś link albo cosik ?
Z góry dzięki.
rogrog
Cytat(Vasquez21 @ 2004-12-02 21:34:49)
Grrr... i jednak mi nie wychodzi wrzuciłem na początek kodu to co mówiłeś żeby sprawdzić czy wogóle to działa. Nic mi się jednak teraz nie ładuje, zapewne coś źle wkleiłem.

nie działa dlatego, że argumenty do preg_replace są niewłaściwe. No ale jak chcesz sprawdzić czy zadziała "bez podmian" to daj to w odpowiedniej linijce

  1. <?php
  2. $strona = preg_replace( '//', '0', $strona );
  3. ?>


a może lepiej by było po prostu dać ten skrypt w katalogu plików html??
Vasquez21
Cytat
a może lepiej by było po prostu dać ten skrypt w katalogu plików html??


Hmmm.... a jaka to będzie różnica bo chyba nie bardzo rozumiem. Chodzi Ci o to, by dopisać w każdym z nich ten skrypt ? To odpada bo plików jest zbyt wiele i mniej więcej co tydzień ich zawartość się zmienia.

Wracając jednak do skryptu to mam jeszcze jedno pytanko... jak sprawdzić kod stronki tą funkcją ? Już tłumaczę dokładniej o co mi chodzi.

  1. <?php
  2. // tutaj jak rozumiem jako $strona podajemy ciag znakow ktore maja byc sprawdzone,
  3. co jesli jednak ja chce przeszukac stronke ? html ? jak powinnienem to zapisac ?
  4. function ob_replace_links( $strona )
  5. {
  6.  
  7. $strona = preg_replace( '//', '0', $strona );
  8. return $strona;
  9.  
  10. }
  11.  
  12. ?>


Wydaje mi się, że gdybym w ten sposób sprawdzał każdą stronkę i podmieniał poprostu -> "<a href=stronka.html>" na "<a href=katalog/katalog/stronka.html>" to już wszystko by zaczęło działać. Bardzo proszę więc o rozwiązanie tego jak mniemam ostatniego problemu.
kociou1
NIe wiem czy dobrze cię zrozumiełam - ale jeśli tak to wystarczy Ci zwyczajny HTML smile.gif
Sprawdź tag <base> - http://www.enter.pl/html/e/base.asp
Vasquez21
zajebiste dzięki biggrin.gif
wszystko działa jak należy.

hmmm... a jednak znów znalazło się coś co nie chce działać :/... czy istnieje podobna komenda dla buttonów ? bo szukałem, ale nie udało mi się znaleźć.

Ewentualnie czy da się jakoś inaczej ustawić domyślnie ścieżkę, która ma być pobierana na konkretnej stronie ?
Myślałem, o czymś takim, że umieszczę ją przed includem, który ładuje kolejne stronki i wcześniej dam warunek sprawdzający jaka strona została załadowana i wtedy mógłbym ustalić wszystko.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.