![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 500 Pomógł: 1 Dołączył: 29.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam wyrażenie regularne które zamieni mi taki ciąg
Kod {if $zmienna == $zmienna2} aaaaaa {else} bbbbb {/if} Oczywiście warunek ($zmienna == $zmienna2) jest zmienny Aktualnie robię to tak
No i wszystko działo ale jestem pewny, że można to zrobić w jednej linijce i nie wykorzystywać 3 funkcji preg_replace Próbowałem na różne sposoby ale nie wyszło (IMG:style_emoticons/default/biggrin.gif) Problem jeszcze jest taki, że chciałbym aby obsługiwało to też taki ciąg Kod {if $zmienna == $zmienna2}aaaaaa{else}bbbbb{/if} Bo przy powyższym sposobie są błędy (IMG:style_emoticons/default/wink.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A o str_replace czasem słyszałeś? (IMG:style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 500 Pomógł: 1 Dołączył: 29.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Pewno, że słyszałem ale nie użyję w nim wyrażeń regularnych które mi są niezbędne do zastąpienia {if $zmienna == $zmienna2}
Pogrubiona wartość jest zmienna, skrypt nie ma pojęcia co się tam kryje dlatego potrzebuję skorzystać z wyrażeń regularnych str_replace mogę jednak użyć przy {else} i {/if} ale czy to będzie dobre rozwiązanie skoro mogę wszystko za jednym zamachem przez preg_replace? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
? Zapewne można bardziej optymalnie, ale to tak pisane z palca (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Pogrubiona wartość jest zmienna, skrypt nie ma pojęcia co się tam kryje dlatego potrzebuję skorzystać z wyrażeń regularnych Ale zważ na to, że sprawdzane wyrażenie jest zgodne ze składnią pehapca, więc nadal wystarczy Ci str_replace. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A nie lepiej użyć alternatywnej składni php?
Jedynie zamieniając klamry na tagi php ? O alternatywnej składni bloków kodu (pętli, warunków) poczytać możesz w dokumentacji: Alternative syntax for control structures EDIT: tak teraz zajrzałem dokładnie do pierwszego posta, tj do listingu kodu jaki podałeś i powiem ci tak, zajrzyj do dokumentacji preg_replace, możesz zamiast jednego wyrażenia podać ich kilka, w tablicy. Jak podajesz w tablicy wzorce, to w drugim argumencie musisz podać tablicę zastępowanego ciągu:
Tyle że w taki sposób tobie to będziesz musiał zrobić zyliard wyrażeń regularnych i pamiętać cały czas składnie takiego szablonu. W przypadku zapisu alternatywnego, nie tworzysz niczego nowego, bo to już jest od dość dawna w dokumentacji. Tutaj już masz w sumie gotowe rozwiązanie: http://forum.php.pl/index.php?showtopic=18...t-member-921998 które właśnie oparłem o alternatywny zapis struktur kontrolnych (warunki, pętle etc). Może ci to w czymś pomoże (IMG:style_emoticons/default/wink.gif) Ten post edytował by_ikar 30.12.2011, 18:25:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:28 |