Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyrazenia regularne w szablonach
Forum PHP.pl > Forum > Przedszkole
-mic-
Witam,

pisze prosty program ktory generuje mi tresc w szablonie.

Szablon ma postac:

tekst 1
{ifmainpage}sekcja A {/ifmainpage}
tekst 2
{ifmainpage}sekcja B{/ifmainpage}

Stosuje taki kod
$szablon = ereg_replace("{ifmainpage}.*{/ifmainpage}","",$szablon);

Problem w tym ze on zamiast zostawic mi wynik:
tekst 1
sekcja A
tekst 2
sekcja B

to zostawia mi tylko:
tekst 1

Probowalem alternatywne wzorce jak:
.*[^{] lub .*[^ifmainpage] niestety nie udalo sie.

Bardzo prosdze o pomoc.
krzywy36
bo to wyrażenie jest "zachłanne". Zrób tak:
  1. $szablon = preg_replace('/\{ifmainpage}.*?\{\/ifmainpage}/', $replacement, $szablon); //ereg to zuo

$replacement to, to co ma się znaleźć zamiast tych "sekcji"
-mic-
Działa! Pięknie dziękuję. smile.gif
-mic-
A może mi ktoś jeszcze podpowiedziec jak to zmodyfikowac aby działało znacnziki {ifmainpage} {/ifmainpage} nie musioaly byc w jednej lini a obejmowaly wiekszy fragment


cos w stylu

{ifmainpage}
tekst A .....<br />

<a href="">Link 1</a>
{/ifmainpage}

poki co musze zapisywac to w jednej lini zebyd zialalo ale kod HTML jest nieprzejrzysty i latwo sie pogubic.
{ifmainpage}tekst A .....<br /> <a href="">Link 1</a>{/ifmainpage}


Raz jeszcze prosze o pomoc smile.gif
krzywy36
sprawdź:
  1. $szablon = preg_replace('/\{ifmainpage}.*?\{\/ifmainpage}/s', $replacement, $szablon); //ereg to zuo
Gość
Bułka z masłem - prawda? Jeszcze raz piekne dzięki smile.gif
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.