fork download
  1. <?php
  2.  
  3. function funcao1() {
  4. return '<Funcao galeria 1>';
  5. }
  6. function funcao2() {
  7. return '<Funcao galeria 2>';
  8. }
  9.  
  10. function extrairPalavras($texto, $sepInicial, $sepFinal){
  11. $resultado = [];
  12. $contador = $inicio = $final = 0;
  13.  
  14. while ($contador < strlen($texto)){
  15. $posIn = strpos($texto, $sepInicial, $inicio);
  16. $posFn = strpos($texto, $sepFinal, $final);
  17.  
  18. if ($posIn !== false){
  19. $inicio = $posIn + 1;
  20.  
  21. if ($posFn !== false){
  22. $final = $posFn + 1;
  23. $resultado[$inicio] = $final;
  24. }
  25. }
  26. $contador++;
  27. }
  28. return $resultado;
  29. }
  30.  
  31. $texto = "Lorem [funcao2] impsun [funcao1] Lorem [heya] impsun";
  32. $indices = extrairPalavras($texto, '[', ']');
  33.  
  34. foreach($indices as $inicial => $final){
  35. $nomeFunc = substr($texto, $inicial, $final - $inicial - 1);
  36.  
  37. if(function_exists($nomeFunc)) {
  38. if (!isset($textoResultado)){
  39. $textoResultado = str_replace("[$nomeFunc]", $nomeFunc(), $texto);
  40. continue;
  41. }
  42. $textoResultado = str_replace("[$nomeFunc]", $nomeFunc(), $textoResultado);
  43. }
  44. }
  45. echo $textoResultado . "\n";
  46.  
Success #stdin #stdout 0.03s 52480KB
stdin
Standard input is empty
stdout
Lorem <Funcao galeria 2> impsun <Funcao galeria 1> Lorem [heya] impsun