Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Erik# en 24 Julio 2009, 13:51 pm



Título: Cambiar palabra y ejecutar función [help]
Publicado por: Erik# en 24 Julio 2009, 13:51 pm
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.


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: Og. en 24 Julio 2009, 16:20 pm
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
  1. $text = split(" ", $text);
y despues con un for buscar si el pedazo es por ejemplo "echo" y cambiarlo por el echo ya coloreado

saludos!


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: Erik# en 24 Julio 2009, 16:28 pm
Claro pero lo que yo hare sera ponerlo entre  ¿entiendes? Como puedo recojer lo de enmedio :S?


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: Og. en 24 Julio 2009, 16:33 pm
mmm haora te entiendo menos xD

podrias poner el code?


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: ^Cloud^ en 24 Julio 2009, 16:34 pm
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í:

Código:
<?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,


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: Erik# en 24 Julio 2009, 16:39 pm
Para que son: /\[red\](.*)\[\/red\]/i

Pones muchos caracteres :S


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: ^Cloud^ en 24 Julio 2009, 16:44 pm
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).


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: Erika Vega en 24 Julio 2009, 17:29 pm
Lo que entiendo es que por ejemplo cuando el ponga los bbcodes
Código:
[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
  1. <?
  2.  
  3. function bbcode_php($str){
  4.   $color = substr($str,5,-6);
  5.   $show = highlight_string($color);
  6. }
  7.  
  8. echo bbcode_php('[php]<? echo "hola"; ?>[/php]');
  9.  
  10. ?>

Saludos.


Título: Re: Cambiar palabra y ejecutar función [help]
Publicado por: Erik# en 24 Julio 2009, 19:14 pm
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?