Regex en preg_replace probleem
Stel, ik heb deze preg_replace en/of regex:
En dit zit in $text:
Hoe kan ik dan uiteindelijk zoiets raar in $page krijgen:
Ik snap er echt niets van.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$page = preg_replace('#(.+?)\[page=(.+?)\](.+?)\[\/page\](.+?)#', '$1', $text,
1);
$page = str_replace(' ', '_', $page);
?>
$page = preg_replace('#(.+?)\[page=(.+?)\](.+?)\[\/page\](.+?)#', '$1', $text,
1);
$page = str_replace(' ', '_', $page);
?>
En dit zit in $text:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<table width="360" border="0" cellpadding="0" cellspacing="5" style="margin-left: 100px;">
<tr>
<td align="center" valign="bottom"><img src="http://i17.tinypic.com/89j3c7d.jpg" /></td>
<td align="center" valign="bottom"><img src="http://i19.tinypic.com/6xqkep5.jpg" /></td>
</tr>
<tr>
<td>
<img src="../forum/images/flag_us.png"> TBA<br />
<img src="../forum/images/flag_eu.png"> TBA<br />
<img src="../forum/images/flag_au.png"> TBA
</td>
<td>
<img src="../forum/images/flag_us.png"> TBA<br />
<img src="../forum/images/flag_eu.png"> TBA<br />
<img src="../forum/images/flag_au.png"> TBA
</td>
</tr>
<tr>
<td align="center" colspan="2">
<a target="_blank" href="http://www.rockstarnorth.com"><img src="http://i9.tinypic.com/6y3rcd0.png"></a>
<a target="_blank" href="http://www.rockstargames.com"><img src="http://i15.tinypic.com/8fza4hj.png"></a>
</td>
</tr>
</table>
**Het Verhaal**
[page=Rockstar_Games]Rockstar[/page] heeft over GTA IV op dit moment zeer weinig informatie vrijgegeven. De game zal zich afspelen in New York en het [page=Niko_Bellic]personage[/page] heeft een Russisch accent. Wat we ook weten is dat de game de [page]NaturalMotion[/page] [page]Euphoria[/page] engine draagt en daarom zeer mooie graphics heeft en de game zal tegelijk op de [page=PS3]Playstation 3[/page] en [page]Xbox 360[/page] uitgegeven worden. Er zijn geruchten dat de game ook op de [page]Nintendo Wii[/page] verkrijgbaar zal zijn maar dit is niet zeker, over de PC versie is niets bekend.
<tr>
<td align="center" valign="bottom"><img src="http://i17.tinypic.com/89j3c7d.jpg" /></td>
<td align="center" valign="bottom"><img src="http://i19.tinypic.com/6xqkep5.jpg" /></td>
</tr>
<tr>
<td>
<img src="../forum/images/flag_us.png"> TBA<br />
<img src="../forum/images/flag_eu.png"> TBA<br />
<img src="../forum/images/flag_au.png"> TBA
</td>
<td>
<img src="../forum/images/flag_us.png"> TBA<br />
<img src="../forum/images/flag_eu.png"> TBA<br />
<img src="../forum/images/flag_au.png"> TBA
</td>
</tr>
<tr>
<td align="center" colspan="2">
<a target="_blank" href="http://www.rockstarnorth.com"><img src="http://i9.tinypic.com/6y3rcd0.png"></a>
<a target="_blank" href="http://www.rockstargames.com"><img src="http://i15.tinypic.com/8fza4hj.png"></a>
</td>
</tr>
</table>
**Het Verhaal**
[page=Rockstar_Games]Rockstar[/page] heeft over GTA IV op dit moment zeer weinig informatie vrijgegeven. De game zal zich afspelen in New York en het [page=Niko_Bellic]personage[/page] heeft een Russisch accent. Wat we ook weten is dat de game de [page]NaturalMotion[/page] [page]Euphoria[/page] engine draagt en daarom zeer mooie graphics heeft en de game zal tegelijk op de [page=PS3]Playstation 3[/page] en [page]Xbox 360[/page] uitgegeven worden. Er zijn geruchten dat de game ook op de [page]Nintendo Wii[/page] verkrijgbaar zal zijn maar dit is niet zeker, over de PC versie is niets bekend.
Hoe kan ik dan uiteindelijk zoiets raar in $page krijgen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<table_width="360"_border="0"_cellpadding="0"_cellspacing="5"_style="margin-left:_100px;">
__<tr>
____<td_align="center"_valign="bottom"><img_src="http://i17.tinypic.com/89j3c7d.jpg"_/></td>
____<td_align="center"_valign="bottom"><img_src="http://i19.tinypic.com/6xqkep5.jpg"_/></td>
__</tr>
__<tr>
<td>
______<img_src="../forum/images/flag_us.png">_TBA<br_/>
__<img_src="../forum/images/flag_eu.png">_TBA<br_/>
__<img_src="../forum/images/flag_au.png">_TBA
____</td>
<td>
______<img_src="../forum/images/flag_us.png">_TBA<br_/>
__<img_src="../forum/images/flag_eu.png">_TBA<br_/>
__<img_src="../forum/images/flag_au.png">_TBA
____</td>
__</tr>
__<tr>
____<td_align="center"_colspan="2">
______<a_target="_blank"_href="http://www.rockstarnorth.com"><img_src="http://i9.tinypic.com/6y3rcd0.png"></a>
______<a_target="_blank"_href="http://www.rockstargames.com"><img_src="http://i15.tinypic.com/8fza4hj.png"></a>
____</td>
__</tr>
</table>
</td></tr></table><table_cellpadding="0"_cellspacing="0"_border="0"_width="630"_style="padding-top:_2px;_vertical-align:_middle;"><tr><td_class="content_top"><div_class="content_title">Het_Verhaal</div></td></tr><tr><td_class="content"_colspan="2">
[page=Rockstar_Games]Rockstar[/page]_heeft_over_GTA_IV_op_dit_moment_zeer_weinig_informatie_vrijgegeven._De_game_zal_zich_afspelen_in_New_York_en_het_heeft_een_Russisch_accent._Wat_we_ook_weten_is_dat_de_game_de_[page]NaturalMotion[/page]_[page]Euphoria[/page]_engine_draagt_en_daarom_zeer_mooie_graphics_heeft_en_de_game_zal_tegelijk_op_de_[page=PS3]Playstation_3[/page]_en_[page]Xbox_360[/page]_uitgegeven_worden._Er_zijn_geruchten_dat_de_game_ook_op_de_[page]Nintendo_Wii[/page]_verkrijgbaar_zal_zijn_maar_dit_is_niet_zeker,_over_de_PC_versie_is_niets_bekend.
__<tr>
____<td_align="center"_valign="bottom"><img_src="http://i17.tinypic.com/89j3c7d.jpg"_/></td>
____<td_align="center"_valign="bottom"><img_src="http://i19.tinypic.com/6xqkep5.jpg"_/></td>
__</tr>
__<tr>
<td>
______<img_src="../forum/images/flag_us.png">_TBA<br_/>
__<img_src="../forum/images/flag_eu.png">_TBA<br_/>
__<img_src="../forum/images/flag_au.png">_TBA
____</td>
<td>
______<img_src="../forum/images/flag_us.png">_TBA<br_/>
__<img_src="../forum/images/flag_eu.png">_TBA<br_/>
__<img_src="../forum/images/flag_au.png">_TBA
____</td>
__</tr>
__<tr>
____<td_align="center"_colspan="2">
______<a_target="_blank"_href="http://www.rockstarnorth.com"><img_src="http://i9.tinypic.com/6y3rcd0.png"></a>
______<a_target="_blank"_href="http://www.rockstargames.com"><img_src="http://i15.tinypic.com/8fza4hj.png"></a>
____</td>
__</tr>
</table>
</td></tr></table><table_cellpadding="0"_cellspacing="0"_border="0"_width="630"_style="padding-top:_2px;_vertical-align:_middle;"><tr><td_class="content_top"><div_class="content_title">Het_Verhaal</div></td></tr><tr><td_class="content"_colspan="2">
[page=Rockstar_Games]Rockstar[/page]_heeft_over_GTA_IV_op_dit_moment_zeer_weinig_informatie_vrijgegeven._De_game_zal_zich_afspelen_in_New_York_en_het_heeft_een_Russisch_accent._Wat_we_ook_weten_is_dat_de_game_de_[page]NaturalMotion[/page]_[page]Euphoria[/page]_engine_draagt_en_daarom_zeer_mooie_graphics_heeft_en_de_game_zal_tegelijk_op_de_[page=PS3]Playstation_3[/page]_en_[page]Xbox_360[/page]_uitgegeven_worden._Er_zijn_geruchten_dat_de_game_ook_op_de_[page]Nintendo_Wii[/page]_verkrijgbaar_zal_zijn_maar_dit_is_niet_zeker,_over_de_PC_versie_is_niets_bekend.
Ik snap er echt niets van.
Je doet een paar rare dingen. Wat wil je dat het resultaat?
Hier vervang je de eerste entry van [page=abc]xyz[/page] door alles wat ervoor komt. Dat bedoel je vast niet.
abc
$1 matches alles wat voor de eerste [page] komt. Probeer eerst je regex is compleet te krijgen.
Hier geef je de opdracht om alle spaties met underscores te veranderen. Bedoel je iets anders?
Hier vervang je de eerste entry van [page=abc]xyz[/page] door alles wat ervoor komt. Dat bedoel je vast niet.
abc
$1 matches alles wat voor de eerste [page] komt. Probeer eerst je regex is compleet te krijgen.
Code (php)
1
2
3
4
2
3
4
<?
$page = preg_replace('#(.+?)\[page=(.+?)\](.+?)\[\/page\](.+?)#', '$1', $text,
1);
?>
$page = preg_replace('#(.+?)\[page=(.+?)\](.+?)\[\/page\](.+?)#', '$1', $text,
1);
?>
Hier geef je de opdracht om alle spaties met underscores te veranderen. Bedoel je iets anders?
Het lijkt er op dat je regex niet gematcht wordt en die strepen zijn gewoon het gevolg van je str_replace.
Ja dat klopt jan, maar dat moet ook, omdat $page zo vaag wordt zijn er heel veel spaties.
Maar arend, die $1 moest $2 zijn, ik had het veranderd toen ik even zat te kijken. En ik snap echt niets van Regex. Ik heb er al zo veel (verloren) tijd in zitten. Maar ik wil dus dit uiteindelijk als $page krijgen: '[page=BLA]Hallo[/page]' => 'BLA'
Maar dat hoort toch eigenlijk zo te zijn met wat ik heb gemaakt?
Maar arend, die $1 moest $2 zijn, ik had het veranderd toen ik even zat te kijken. En ik snap echt niets van Regex. Ik heb er al zo veel (verloren) tijd in zitten. Maar ik wil dus dit uiteindelijk als $page krijgen: '[page=BLA]Hallo[/page]' => 'BLA'
Maar dat hoort toch eigenlijk zo te zijn met wat ik heb gemaakt?
Dit zou voldoende moeten zijn.
Ja maar er kan voor [page=bla] ook nog text staan en er achter ook.
Maar ik krijg nogsteeds het zelfde resultaat.
Maar ik krijg nogsteeds het zelfde resultaat.
Een regex matched alleen vanaf het begin van een string tot een eind als je dat expliciet aangeeft, zoals hier:
De regex uit mijn eerdere post klopt, en werkt hier zoals hij zou moeten werken.. Maar misschien begrijp ik niet precies wat jij wil, leg anders eens uit, zoals ik eerder vroeg, wat wil je precies als resultaat?
De regex uit mijn eerdere post klopt, en werkt hier zoals hij zou moeten werken.. Maar misschien begrijp ik niet precies wat jij wil, leg anders eens uit, zoals ik eerder vroeg, wat wil je precies als resultaat?
Gewijzigd op 01/01/1970 01:00:00 door Arend a
Met die nieuwe van je lukt het nog niet. Ik probeer(de) net zo iets te maken als mediawiki heeft, als een link bestaat dan is hij zwart, als de link niet bestaat wordt hij rood.
Ik snap niet waarom $page niet gewoon [page=dit]titel[/page] of [page]titel[/page] wordt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$matches = preg_match_all('#\[page=(.*?)\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
$page = preg_replace('#^\[page=(.+?)\].+?\[\/page\]$#', '$1', $text, 1);
$page = str_replace(' ', '_', $page);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1">$2</a>', $text, 1);
} else {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$2</a>', $text, 1);
}
}
}
$matches = preg_match_all('#\[page\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
$page = preg_replace('#^\[page\](.+?)\[\/page\]$#', '$1', $text, 1);
$page = str_replace(' ', '_', $page);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1">$1</a>', $text, 1);
} else {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$1</a>', $text, 1);
}
}
}
?>
$matches = preg_match_all('#\[page=(.*?)\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
$page = preg_replace('#^\[page=(.+?)\].+?\[\/page\]$#', '$1', $text, 1);
$page = str_replace(' ', '_', $page);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1">$2</a>', $text, 1);
} else {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$2</a>', $text, 1);
}
}
}
$matches = preg_match_all('#\[page\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
$page = preg_replace('#^\[page\](.+?)\[\/page\]$#', '$1', $text, 1);
$page = str_replace(' ', '_', $page);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1">$1</a>', $text, 1);
} else {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$1</a>', $text, 1);
}
}
}
?>
Ik snap niet waarom $page niet gewoon [page=dit]titel[/page] of [page]titel[/page] wordt.
Je wil dus van:
[page]1[/page]
[page=1]2[/page]
dit maken:
<a href="1">1</a>
<a href="1" title="2">2</a>
Ik denk dat dit dan wel werkt:
Niet getest, maar zou moeten werken.
[page]1[/page]
[page=1]2[/page]
dit maken:
<a href="1">1</a>
<a href="1" title="2">2</a>
Ik denk dat dit dan wel werkt:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$tekst = preg_replace(
array('/\[ *page *\](.+?)\[ *\/ *page *\]/i', '/\[ *page *= *(.+?) *\](.+?)\[ *\/ *page *\]/i'),
array('<a href="$1">$1</a>','<a href="$2" title="$1">$1</a>'),
$tekst);
?>
$tekst = preg_replace(
array('/\[ *page *\](.+?)\[ *\/ *page *\]/i', '/\[ *page *= *(.+?) *\](.+?)\[ *\/ *page *\]/i'),
array('<a href="$1">$1</a>','<a href="$2" title="$1">$1</a>'),
$tekst);
?>
Niet getest, maar zou moeten werken.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Nee, je begrijpt het niet, [page=BLA]BLA2[/page], dan moet ik dus BLA hebben en dan kijk ik of die bestaat in de database, dan is de link zwart, zoniet is de link rood idem voor [page]BLA[/page], dan moet ik gewoon BLA hebben.
Zo dan:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$tekst = preg_replace(
array('/\[ *page *\](.+?)\[ *\/ *page *\]/i', '/\[ *page *= *(.+?) *\](.+?)\[ *\/ *page *\]/i'),
'$1',
$tekst);
?>
$tekst = preg_replace(
array('/\[ *page *\](.+?)\[ *\/ *page *\]/i', '/\[ *page *= *(.+?) *\](.+?)\[ *\/ *page *\]/i'),
'$1',
$tekst);
?>
Nee, nog niet. En ik hoef ook niet dat hij 2 dingen tegelijk replaced, gewoon eerst alleen [page=][/page], daarna als dat werkt lukt [page][/page] ook wel.
Om de betreffende delen te matchen:
Nu kun je zelf verder met die variabelen en controleren in de database. Daarna zou je afhankelijk daarvan een preg_replace kunnen uitvoeren waarbij je dezelfde regexen gebruikt...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
// [page][/page]
$sString = 'Een tekst met [page]een pagina[/page] erin.';
preg_match('_\[page\](.+?)\[/page\]_is', $sString, $aResult);
echo $aResult[1].'<br>';
// [page=][/page]
$sString = 'Een andere tekst [page=pagina]met tekst[/page] erin.';
preg_match('_\[page=(.+?)\](.+?)\[/page\]_is', $sString, $aResult);
echo $aResult[1].': '.$aResult[2];
?>
// [page][/page]
$sString = 'Een tekst met [page]een pagina[/page] erin.';
preg_match('_\[page\](.+?)\[/page\]_is', $sString, $aResult);
echo $aResult[1].'<br>';
// [page=][/page]
$sString = 'Een andere tekst [page=pagina]met tekst[/page] erin.';
preg_match('_\[page=(.+?)\](.+?)\[/page\]_is', $sString, $aResult);
echo $aResult[1].': '.$aResult[2];
?>
Nu kun je zelf verder met die variabelen en controleren in de database. Daarna zou je afhankelijk daarvan een preg_replace kunnen uitvoeren waarbij je dezelfde regexen gebruikt...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Blanche, je bent geweldig :) (zoals altijd)
Echt bedankt, ik heb aan deze manier nog niet gedacht, echt bedankt..
Echt bedankt, ik heb aan deze manier nog niet gedacht, echt bedankt..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$matches = preg_match_all('#\[page=(.*?)\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
preg_match('_\[page=(.+?)\](.+?)\[/page\]_is', $text, $page);
$page = str_replace(' ', '_', $page[1]);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1">$2</a>', $text, 1);
} else {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$2</a>', $text, 1);
}
}
}
$matches = preg_match_all('#\[page\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
preg_match('_\[page\](.+?)\[/page\]_is', $text, $page);
$page = str_replace(' ', '_', $page[1]);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1">$1</a>', $text, 1);
} else {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$1</a>', $text, 1);
}
}
}
?>
$matches = preg_match_all('#\[page=(.*?)\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
preg_match('_\[page=(.+?)\](.+?)\[/page\]_is', $text, $page);
$page = str_replace(' ', '_', $page[1]);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1">$2</a>', $text, 1);
} else {
$text = preg_replace('#\[page=(.*?)\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$2</a>', $text, 1);
}
}
}
$matches = preg_match_all('#\[page\](.*?)\[\/page\]#', $text, $matches);
if ($matches >= 1) {
for ($i = 1; $i <= $matches; $i++) {
preg_match('_\[page\](.+?)\[/page\]_is', $text, $page);
$page = str_replace(' ', '_', $page[1]);
$page_count = mysql_result(mysql_query("SELECT COUNT(id) FROM content_pages WHERE title = '" . $page . "' LIMIT 1"), 0);
if ($page_count == 1) {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1">$1</a>', $text, 1);
} else {
$text = preg_replace('#\[page\](.*?)\[\/page\]#', '<a href="?p=$1" style="color: #CC3300;">$1</a>', $text, 1);
}
}
}
?>
Pas nog wel even beveiliging op de input in je query toe en bouw ook nog even de foutafhandeling in.
Als ik nu een bijvoorbeeld [page]blaat'metquote''[/page] invul, gaat jouw query hopeloos de soep in.
Dit is ook niet echt logisch. $matches is namelijk een array die alle matches van de preg_match_all bevat, geen aantal...
Als ik nu een bijvoorbeeld [page]blaat'metquote''[/page] invul, gaat jouw query hopeloos de soep in.
Dit is ook niet echt logisch. $matches is namelijk een array die alle matches van de preg_match_all bevat, geen aantal...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$matches = preg_match_all('#\{\{template=(.*?)\}\}#', $text, $matches);
if ($matches >= 1) {
require_once("../includes/template_parser.class.php");
for ($i = 1; $i <= $matches; $i++) {
$title = preg_match('_\{\{template=(.*?)\}\}(.*?)_is', $text, $title);
echo $title[1];
$var_query = mysql_query("SELECT vars, template FROM content_templates WHERE title = '" . $title[1] . "' LIMIT 1");
$var_row = mysql_fetch_row($var_query);
$parse = new parser($var_row[1]);
$vars = explode(',', $var_row[0]);
$tot_vars = count($vars);
for ($p = 0; $p < $tot_vars; $p++) {
preg_match('_\{\{' . $vars[$p] . '=(.+?)\}\}_is', $text, $output);
$parse->assign($vars[$p], $output[1]);
}
$template = '#\{\{template=' . $title[1] . '\}\}' . $title[2] . '#';
$output = $parse->output();
$text = preg_replace($template, $output, $text, 1);
}
}
?>
$matches = preg_match_all('#\{\{template=(.*?)\}\}#', $text, $matches);
if ($matches >= 1) {
require_once("../includes/template_parser.class.php");
for ($i = 1; $i <= $matches; $i++) {
$title = preg_match('_\{\{template=(.*?)\}\}(.*?)_is', $text, $title);
echo $title[1];
$var_query = mysql_query("SELECT vars, template FROM content_templates WHERE title = '" . $title[1] . "' LIMIT 1");
$var_row = mysql_fetch_row($var_query);
$parse = new parser($var_row[1]);
$vars = explode(',', $var_row[0]);
$tot_vars = count($vars);
for ($p = 0; $p < $tot_vars; $p++) {
preg_match('_\{\{' . $vars[$p] . '=(.+?)\}\}_is', $text, $output);
$parse->assign($vars[$p], $output[1]);
}
$template = '#\{\{template=' . $title[1] . '\}\}' . $title[2] . '#';
$output = $parse->output();
$text = preg_replace($template, $output, $text, 1);
}
}
?>
Hierbij krijg is $title[1] gewoon leeg :S Weet iemand hoe dat komt?




