Ik heb voor een cms/nieuwsmodule achtig systeem een backend gebouwd inclusief de mogelijkheid om meerdere foto's te uploaden.
Deze foto's kunnen met een bbcode-style tag [foto=X] (Waarbij X het nummer van de foto is) gebruikt worden in de tekst. Als je in de output op de foto clickt krijg je foto groter in een popup te zien. Werkt allemaal goed.
Nu heeft de grafisch ontwerper echter bedacht dat het wel fijn is om ook onder de kleine versie in de tekst het onderschrift bij de foto te zien. (Danwel via title/alt, of via een onderschrift in een table om de foto heen). Het ophalen van de onderschriften van alle foto's die mogelijk in het artikel voorkomen (foto's zijn vast gekoppeld aan een artikel) is geen probleem. Preg_replace begint echter wat lastig te doen als ik die teksten ook wil gaan gebruiken.
Ik heb de code voor het gemak even bewerkt tot een kleine testcase. Alles wat goed werkt heb ik hier dus weggelaten.
deze code geeft de volgende error melding:
Deze foto's kunnen met een bbcode-style tag [foto=X] (Waarbij X het nummer van de foto is) gebruikt worden in de tekst. Als je in de output op de foto clickt krijg je foto groter in een popup te zien. Werkt allemaal goed.
Nu heeft de grafisch ontwerper echter bedacht dat het wel fijn is om ook onder de kleine versie in de tekst het onderschrift bij de foto te zien. (Danwel via title/alt, of via een onderschrift in een table om de foto heen). Het ophalen van de onderschriften van alle foto's die mogelijk in het artikel voorkomen (foto's zijn vast gekoppeld aan een artikel) is geen probleem. Preg_replace begint echter wat lastig te doen als ik die teksten ook wil gaan gebruiken.
Ik heb de code voor het gemak even bewerkt tot een kleine testcase. Alles wat goed werkt heb ik hier dus weggelaten.
deze code geeft de volgende error melding:
code:
1
2
| Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in replace_test.php on line 8 |
PHP:
Error opzich is wel te begrijpen. Ik zie echter even geen workarround om toch tot het gewenste resultaat te komen? Iemand een idee?
1
2
3
4
5
6
7
8
9
10
11
12
| <?php $alt_txt = array("foto1","foto2","foto3","foto4","foto5"); $string = "test tekst met 2 fotos [foto=1] bla bla [foto=2]"; $pattern[0] = '/\[foto=(\d+)]/i'; $replacement[0] = " [img]\"foto.php?foto=$1\"[/img]"; $string1 = preg_replace($pattern, $replacement, $string); ?> |