Con expresiones regulares:
Código PHP:
Ver original<?php
function mitexto($str)
{
}
$string = '[texto]holahola[/texto]';
$new = preg_replace('/\[texto\](.+?)\[\/texto\]/e', "mitexto('$1')", $string);
echo $new;
?>
Debería imprimir "HOLAHOLA".
El modificador
e en las expresiones regulares PCRE de php funciona en la función preg_replace haciendo que el 2do parámetro pasado (el reemplazo) sea evaluado como código php.
Un saludo.