Voor een CMS dat ik aan het maken ben, heb ik een preg_replace met een patterns en een replacements array. Omdat ik de uploads in een database heb staan wil ik deze graag tijdens de preg_replace laten vervangen. Alleen wanneer het bijvoorbeeld een plaatje is zal de input een cijferreeks zijn en de preg_replace dient dmv een functie die de cijferreeks omzet naar een pad verwijzing:
Het aanroepen van die functie binnen de array lukt niet, wat logisch is. Nu ben ik opzoek naar een eenvoudige logische oplossing. Ik kan ervoor kiezen nogmaals een preg_replace uit te voeren die opzoek gaat naar <img src="([0-9])".... maar persoonlijk gaat mijn voorkeur niet uit naar het tweemaal uitvoeren van een preg_replace. Je moet namelijk de syntax op twee plekken gaan onderhouden.
Wat is een goede oplossing voor dit probleem?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $input ="een hele lap text met een plaatje [img]1321[/img]"; $patterns[] = "/\[b\](.*)\[\/b\]/U"; $patterns[] = "/\[i\](.*)\[\/i\]/U"; $patterns[] = "/\[u\](.*)\[\/u\]/U"; $patterns[] = "/\[img\]([0-9]+)\[\/img\]/U"; $replacements[] = "<b>\\1</b>"; $replacements[] = "<i>\\1</i>"; $replacements[] = "<u>\\1</u>"; $replacements[] = "<img src=\"files/" . $location('\\1') . "\" alt=\"\" title=\"\" />"; preg_replace($patterns, $replacements, $input); |
Het aanroepen van die functie binnen de array lukt niet, wat logisch is. Nu ben ik opzoek naar een eenvoudige logische oplossing. Ik kan ervoor kiezen nogmaals een preg_replace uit te voeren die opzoek gaat naar <img src="([0-9])".... maar persoonlijk gaat mijn voorkeur niet uit naar het tweemaal uitvoeren van een preg_replace. Je moet namelijk de syntax op twee plekken gaan onderhouden.
Wat is een goede oplossing voor dit probleem?