I lost a lot of time because of that issue, and I'm really resigned..
When I using preg_replace with create_function , all results going at the beggining of output, but they should be in the place of founded match, just like:
COMPONENT1 COMPONENT2 Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi.
And should be:
Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum COMPONENT1 in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna COMPONENT2. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi.
function getcomponent($source){
$get = getXML(datadir.$source.'.xml')->content;
$getcomp = create_function("",' ?>'.$get.'<?php ');
$getcomp();
}
preg_match_all("/\[\#PHP (.*?) \#\]/",$content,$content3);
foreach ($content3[1] as $value) { //$content3[0]
$content2 = preg_replace("/\[\#PHP ".$value." \#\]/",getcomponent($value),$content);
$content = $content2;
}
I will be very grateful for every tip. Cheers!