Nieuw 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.
<?php
//array opstellen met BB-codes
$bb_code =
array( '...',
'#\[foto\](.*)\[/foto\]#iUs'
);
//html-codes
$html_code =
array( '...',
'<div style="float:right";>' .geef_thumbnail_weer( '\\1' ). '</div>'
);
//Alle bb-code in het bericht vervangen door de bijhorende HTML-code
$output = preg_replace( $bb_code, $html_code, $input );
?>
<?php //array opstellen met BB-codes $bb_code = '#\[foto\](.*)\[/foto\]#iUs' ); //html-codes $html_code = '<div style="float:right";>' .geef_thumbnail_weer( '\\1' ). '</div>' ); //Alle bb-code in het bericht vervangen door de bijhorende HTML-code ?>
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
<?php
//enkel html-array gedeelte
"'<div style=\"float:right\";>' .geef_thumbnail_weer_functie( '\1' ). '</div>'"
//met als output
//'' .geef_thumbnail_weer_functie( 'afbeelding_naam.jpg' ). '
?>
<?php //enkel html-array gedeelte "'<div style=\"float:right\";>' .geef_thumbnail_weer_functie( '\1' ). '</div>'" //met als output //'' .geef_thumbnail_weer_functie( 'afbeelding_naam.jpg' ). ' ?>
|