Cambiar palabra y ejecutar función [help]

Iniciado por Erik#, 24 Julio 2009, 13:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Erik#

Hola, bueno lo que quiero hacer es que por ejemplo si yo pongo en un areatext entre unos bbcodes (echo "Hola";) por ejemplo, quiero que al haber utilizado [php]... que llame a una función llamada phpf y que lo de dentro se ponga de color.
No quiero que me deis como hacer el color porque eso ya lo se, lo unico que quiero es que pueda hacer que entre dos tags, ese texto cambiarle el color :). Parecido al geshi, esque lo estoy creando desde 0, y me ha surgido esa duda :S.

Og.

pues no se si te entendi bien  ;D

bueno lo que yo haria seriá separar lo que se va a imprimir con un
Código (php) [Seleccionar]
$text = split(" ", $text);
y despues con un for buscar si el pedazo es por ejemplo "echo" y cambiarlo por el echo ya coloreado

saludos!
|-

Erik#

Claro pero lo que yo hare sera ponerlo entre ¿entiendes? Como puedo recojer lo de enmedio :S?

Og.

mmm haora te entiendo menos xD

podrias poner el code?
|-

^Cloud^

Bueno... para estas chorradas suelo usar preg_replace ya que me resulta lo más comodo. Algo como lo que tu quieres hacer sería más o menos así:


<?php
$pattern
[] ='/\[red\](.*)\[\/red\]/i';
$pattern[] = '/\[blue\](.*)\[\/blue\]/i';
$replace[] = '<font color="red">${1}</font>';
$replace[] = '<font color="blue">${1}</font>';
$text "El [blue]perro[/blue] de san roque no [red]tiene[/red] rabo";
print 
preg_replace($pattern,$replace,$text);
?>


De esta forma te puedes crear los patrones y los reemplazos en un fichero aparte, para añadir lo quitar los que quieras y añadirlos a través de un include.

Un saludo,
Ahora resulta que imagino mi pasado
y llevo en esta clínica cuarenta años.
Nunca jamás he pisado la calle
y el electroshock ha sido mi padre

Erik#

Para que son: /\[red\](.*)\[\/red\]/i

Pones muchos caracteres :S

^Cloud^

Es una expresion regular. Las barras son para escapar los caracteres especiales (que pueden formar parte de una expresión pero quieres que se interpreten por lo que son).
Ahora resulta que imagino mi pasado
y llevo en esta clínica cuarenta años.
Nunca jamás he pisado la calle
y el electroshock ha sido mi padre

Erika Vega

#7
Lo que entiendo es que por ejemplo cuando el ponga los bbcodes

[php]EL CODIGO AQUI[/php]


Todo lo que este dentro de esos tags quede en colores.

aqui mi codigo que te puede dar una idea.
Código (php) [Seleccionar]

<?

function bbcode_php($str){
  $color = substr($str,5,-6);
  $show = highlight_string($color);
}

echo bbcode_php('[php]<? echo "hola"; ?>[/php]');

?>


Saludos.

Erik#

#8
Gracias erika, cloud
Me ha servido, no pense en substr :) ahora me queda otra duda.
Si tengo todo un array que quiero que si aparecen esas palabras en el texto se conviertan en <font face="terminal" size="2" color="#0000f7"> Yo pense en strstr y si aparece se le colorea, pero eso tardare mucho, algun proceso más rapido?