Przypuśćmy, ze mam bazę różnych kodów, na razie w postaci zmiennych (docelowo pobierane z MySQL, ale to bez znaczenia)
Dla przykładu
$g336 = tutaj kod adsense, używam heredoc by nie przejmować się znaczkami
To wstawi large rectangle...
Kod do wstawiania adsense wygląda (ma wyglądać) tak:
[adsense=right]336[/adsense]
gdzie adsense=right oznacza , że adsense zostanie wstawiony w spana, o klasie adsenseright (będzie miał po prostu nadane float: right)
Poza tym będą klasy adsenseleft i adsensecenter , ale to nieistotne ...
<span class="adsenseright">Kod adsense</span>
Numerek oznacza zmienną która ma zostać załadowana (czyli notabene kod adsense ze zmiennej)
Pattern wygląda tak:
'/(\[adsense=)(.*?)(\])(.*?)(\[\/adsense\])/'
replacement tak:
'<span class="adsense${2}">'.$g336.'</span>'
czyli w takim wypadku wszystko pięknie zadziała ... jednak, ja nie chcę na sztywno $g336 , chcę , by zmienna była dynamiczna w zależności od tego, co wstawię między znaczki [adsense]...[/adsense]
Czyli w skrócie coś takiego (to oczywiście nie zadziała)
'<span class="adsense${2}">'.$g${4}.'</span>'
Po prostu czwarty nawias z patterna ma być fragmentem nazwy tej zmiennej, po czym zmienna ma być wywołana (ma sie zamienić na dany kod adsense) ...
Oczywiście mogę napisać osobne patterny dla każdego rodzaju kodu adsense, ale wtedy za każdym razem gdy będę chciał jakiś dodać, będę musiał edytować/dopisywać nowe patterny
Ma ktoś jakiś pomysł ?
==============
EDIT
==============
No cóż, chwila w wannie i pomysł sam przyszedł, po prostu do wyświetlania reklamy w danym miejscu napisałem sobie funkcję
adsense($type) która, dostaje nazwę z ${4} , a następnie pobiera i zwraca z MySQL kod danej reklamy przy wykorzystaniu WHERE nazwakolumnyztypemreklamy = $type ... proste... banalne wręcz i od razu mam reklamy w MySQL

Z tablicami zapewne też by zadziałało ... ale funkcja jest bardziej... hmm ... funkcjonalna ?
