Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_replace - co robię źle?
Najki
post 16.08.2005, 10:41:26
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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ć?

Ten post edytował Najki 16.08.2005, 10:43:26


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 16.08.2005, 11:31:49
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


nuked by mysefl...

nie mysle...

Ten post edytował ActivePlayer 16.08.2005, 11:32:46
Go to the top of the page
+Quote Post
bendi
post 16.08.2005, 12:45:03
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował bendi 16.08.2005, 12:56:13


--------------------
Go to the top of the page
+Quote Post
Najki
post 16.08.2005, 13:36:39
Post #4





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


No i eureka smile.gif. Dzięki bendi! To już chyba nie jest pierwszy raz, gdy mi życie ratujesz smile.gif. Dzięki.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:16