Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_replace - co robię źle?
Forum PHP.pl > Forum > PHP
Najki
Napotkałem problem.

Oto jak wygląda fragment kodu template'a (fikcyjne linki):
Kod
[start_if_admin]
    <td><a href="[przyklej_link]">[przyklej]</a></td>
    <td><a href="news.php?edytuj=[news_id]">[edytuj]</a></td>
    <td><a href="news.php?usun=[news_id]">[usun]</a></td>
    <td><a href="news.php?komentarze=[news_id]">komentarze: [news_komentarze_ile]</a></td>
    [end_if_admin]
    [start_if_not_admin]
    <td colspan="4"><a href="news.php?komentarze=[news_id]">komentarze: [news_komentarze_ile]</a></td>
    [end_if_not_admin]

Jeśli user zalogowany jest jako admin, system template powinien wyświetlić tylko to z pomiędzy [start_if_admin], a [end_if_admin]. Powinien pominąć zawartość [start_if_not_admin] [end_if_not_admin]. Niestety tak się nie dzieje. Wyświetlane są oba kody. Oto php:
  1. <?
  2. if ( $user_level =='admin' ) {
  3. $go = preg_replace('%[start_if_admin](.*)[end_if_admin]%', '1', $go);
  4. $go = preg_replace('%[start_if_not_admin](.*)[end_if_not_admin]%', '', $go);
  5. } else {
  6. $go = preg_replace('%[start_if_not_admin](.*)[end_if_not_admin]%', '1', $go);
  7. $go = preg_replace('%[start_if_admin](.*)[end_if_admin]%', '', $go);
  8. }
  9. ?>

Co z tym zrobić?
ActivePlayer
nuked by mysefl...

nie mysle...
bendi
Cytat(Najki @ 2005-08-16 11:41:26)
Co z tym zrobić?

Ja bym spróbował zmienić chciwą kropkę w niechciwą kropkę, jakoś tak. I można jeszcze dorzucić warunek na wieloliniowość:
  1. <?
  2. if ( $user_level =='admin' ) {
  3. $go = preg_replace('%[start_if_admin](.*)[end_if_admin]%Us', '1', $go);
  4. $go = preg_replace('%[start_if_not_admin](.*)[end_if_not_admin]%Us', '', $go);
  5. } else {
  6. $go = preg_replace('%[start_if_not_admin](.*)[end_if_not_admin]%Us', '1', $go);
  7. $go = preg_replace('%[start_if_admin](.*)[end_if_admin]%Us', '', $go);
  8. }
  9. ?>
Najki
No i eureka smile.gif. Dzięki bendi! To już chyba nie jest pierwszy raz, gdy mi życie ratujesz smile.gif. Dzięki.
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.