Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Linkin

aplicar uma funcao somente entre algo

Recommended Posts

Seguinte galéra eu estou fazendo um bbcode...E eu preciso saber como eu posso aplicar uma determinada acao somente aos caracteres que estiverem entre o [CODIGO] [/CODIGO] por exemploEntão exemplo:O cara ta la no forum e talz ai la tem um bbcode que deixar a palavra coco e ixi em vermelho mas pra dewixar em vermelho ela tem que estar dentro do [CODIGO] [/CODIGO] e o coco e xixi tiver fora do [CODIGO] [/CODIGO] ele nao deixa vermelho como posso fazer isso ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modificar strings é fácil, basta usar str_replace();

 

Agora, modificar strings "dentro de tag" é meio complicado. Um jeito é usar a fução

 

ereg_replace()

 

veja no manual do PHP(baixe o arquivo chm do php.net) como usar essa função, e veja as funções "relacionadas" também

 

se você tem o Apanhe instalado em sua máquina, procure pelo arquivo (use a busca do Windows) cclass.h, esse arquivo contém os "curingas" para usar com funções do tipo ereg

 

ae vai um exemplo:

 

<?php

$texto = "Minha [red]Cor Atual[/red] é vermelha";

print ereg_replace("(\[red\])+([[:print:]]+)(\[/red\])",

"<font color=\"red\">\2</font>", $texto);

 

/*imprime

Minha <font color="red">Cor Atual</font> é vermelha

*/

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode "desmontar" o texto, separando qual parte está entre [CODIGO] ou naum, usando o comando explode, e depois identificar onde termina a tag ( [/CODIGO]), usando o comando strpos para adivinhar aonde termina o código...

a partir daí, você usa str_replace para substituir os pedaços de código q você quer, e no final junta tudo depois....

desenvolva um pouco essa lógica, organize o código, q provavelmente funciona!!

 

 

[]s

thiago!

------ o problema do linkin já foi meio q solucionado, to postando o código q passei pra ele pra quem quiser ter uma idéia de como funciona!. rs -----

$comando = .....; //o comando a ser tratado$pedaco1 = explode($comando, "[CODIGO]"); //dah uma checada na sintaxe corretawhile ($i <= sizeof($pedaco1)) { $posicao_final = strpos($pedaco1[$i], "[/CODIGO]");$pedacinho = substr($posicao_final, strlen("[/CODIGO]");$pedacinho = str_replace($pedacinho, "coco", "<font color=red>coco</font>);$pedacorestante = ltrim($pedaco1[$i], "[/CODIGO]"); //pedaço de sobra$pedaco2[$i] = $pedacinho.$pedacorestante; //cria uma cópia do array pedaco1, só q agora modificado$i==;}//depois, é só juntar todo o array $pedaco2, e pronto

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.