login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Een functie gebruiken tijdens een preg_replace() (Opgelost)

Offline simonopsomer - 28/09/2008 21:13
Avatar van simonopsomerNieuw lid Om de bb-code om te zetten gebruik ik preg_replace() met 2 arrays. Eén array met de bb-code en één array met de html-code.
In die bb-code bevindt zich een tag: [foto] die gebruikt kan worden om foto's vanop de website weer te geven (in bijvoorbeeld een nieuwsbericht). De naam van de foto moet opgegeven worden tussen de tags. In de html array wordt alles dan in orde gebracht via een aparte functie die de naam van de foto als argument meekrijgt.

De functie die aangeroepen wordt wordt uitgevoerd (dat weet ik door een simpele echo test). Echter kan deze zijn werk niet doen omdat het argument (doorgegeven als \\1) geïnterpreteerd wordt als \1 en dat is geen naam van een foto. Met als resultaat dat ik als output krijg: niets.

  1. <?php
  2.  
  3. //array opstellen met BB-codes
  4. $bb_code =
  5. array( '...',
  6. '#\[foto\](.*)\[/foto\]#iUs'
  7. );
  8.  
  9.  
  10. //html-codes
  11. $html_code =
  12. array( '...',
  13. '<div style="float:right";>' .geef_thumbnail_weer( '\\1' ). '</div>'
  14. );
  15.  
  16. //Alle bb-code in het bericht vervangen door de bijhorende HTML-code
  17. $output = preg_replace( $bb_code, $html_code, $input );
  18.  
  19. ?>


Van iemand heb ik dan de raad gekregen om het op onderstaande manier te doen. Nu wordt het argument van de functie wel goed doorgegeven, maar wordt de functie niet uitgevoerd

  1. <?php
  2.  
  3. //enkel html-array gedeelte
  4.  
  5. "'<div style=\"float:right\";>' .geef_thumbnail_weer_functie( '\1' ). '</div>'"
  6.  
  7. //met als output
  8. //'' .geef_thumbnail_weer_functie( 'afbeelding_naam.jpg' ). '
  9.  
  10. ?>

2 antwoorden

Gesponsorde links
Offline vinTage - 28/09/2008 21:32
Avatar van vinTage Nieuw lid Met de e modifier erbij kan je php uitvoeren, ik neem dus aan dat je ongeveer zoiets wilt doen ?
  1. <?
  2. $tekst = "Dit is een tekst met een mooie [foto]http://www.vintagesworld.be/afbeeldingen/partners/devarea.gif[/foto] erin";
  3.  
  4. $tekst = preg_replace("#\[foto\](.*?)\[/foto\]#ie","geefThumbnailWeer('\\1')", $tekst);
  5.  
  6. function geefThumbnailWeer($url)
  7. {
  8. echo $url;
  9. }
  10.  
  11. ?>
Offline simonopsomer - 29/09/2008 18:29
Avatar van simonopsomer Nieuw lid Bedankt!
Het probleem is inderdaad opgelost door een e toe te voegen aan de modifiers van de reguliere expressie.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s