Ir para conteúdo

POWERED BY:

Arquivado

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

Dyegod3

problemas com ereg_replace

Recommended Posts

pessoal tenho um função realce, ela serve para realçar uma palavra dentro de um texto, porém está ocorrendo um erro quando uso a função ereg_replace do php, quando passo o valor para $var1... da o seguinte warning

 

Warning: ereg_replace() [function.ereg-replace]: Invalid character class name in C:\xampp\htdocs...

 

agradeço toda ajuda possível pessoal ;)

 

 

function realce($mostra,$pat,$cor_a,$cor_B)
{
	$var1=$mostra;
	$var2=$pat;
	$var3=$cor_a;
	$var4=$cor_b;
	
	$pat1=strtolower($var2);
	$pat2=ucfirst($pat1);
    $pat3=strtoupper($var2);
                 
    $pat_a="[[:<:]]".$var2 ."[[:>:]]";
    $pat_b="[[:<:]]".$pat1."[[:>:]]";
    $pat_c="[[:<:]]".$pat2."[[:>:]]";
    $pat_d="[[:<:]]".$pat3."[[:>:]]";
                                                   
    $repl = "<font color='$var3'><b>".$var2."</b></font>";
    $var1=(ereg_replace($pat_a,$repl,$var1));                                            

    $repl1 ="<font color='$var3'><b>".$pat1."</b></font>";
    $var1=(ereg_replace($pat_b,$repl1,$var1));
    $repl2 ="<font color='$var4'><b>".$pat2."</b></font>";
    $var1=(ereg_replace($pat_c,$repl2,$var1));  
    $repl3 ="<font color='$var4'><b>".$pat3."</b></font>";
    $var1=(ereg_replace($pat_d,$repl3,$var1)); 
                 
    return $var1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Warning: ereg_replace() [function.ereg-replace]: Invalid character class name in C:\xampp\htdocs...

 

As funções ereg_* estão sendo descontinuadas, utilize preg_* no lugar.

 

ereg_replace http://forum.imasters.com.br/public/style_emoticons/default/seta.gif preg_replace

 

Veja também a função preg_quote, ela resolverá o seu problema: preg_quote()

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom... agora está dando o seguinte warning

 

Warning: preg_replace() [function.preg-replace]: Unknown modifier '[' in C:\xampp\htdocs

não fui eu qm desenvolveu este cód... não sacar muito de expressões parece um problema tbm xD

 

o quê significam essas expressões "[[:<:]]" ?

 

$pat_a="[[:<:]]".$var2 ."[[:>:]]";
$pat_b="[[:<:]]".$pat1."[[:>:]]";
$pat_c="[[:<:]]".$pat2."[[:>:]]";
$pat_d="[[:<:]]".$pat3."[[:>:]]";

Compartilhar este post


Link para o post
Compartilhar em outros sites

um dump da variável var1

 

var1    = (    preg_replace( [[:<:]]ômega[[:>:]] ,    ômega   ,   Eu sou o Alfa e o Ômega, o princípio e o fim, diz o Senhor, que é, e que era, e que há de vir, o Todo-Poderoso. ))

Compartilhar este post


Link para o post
Compartilhar em outros sites

A menos que esteja enganado quanto a síntese da resposta, mas as ER's usadas em/com preg_*() devem estar dentro de delimitadores que são caracteres que não serão usados na ER e nem pertençam à classificação de metacaratecter.

 

Normalmente usa-se uma barra ( / ) e, caso ela apareça na ER (como para casar um URL), escapa-se com \ (barra invertida). Mas esse delimitador você pode escolher qual usar, mas o delimitador à esquerda deve ser o mesmo à direita. É comum usar-se em substituição à barra, o arroba ( @ ) ou o sustenido ( # ).

 

O erro que você obteve é que '[' abre uma lista, pertencendo, assim, a categoria de metacaractere, sendo seu uso como delimitador negado. Daí a má interpretação do metacaractere como sendo um delimitador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é uma boa explicação, tentei aplicar aki no cód mas não consegui resultados, talvez não tenha entendido bem onde deve ser alterado

 

o cód é pequeno, se puder alterá-lo para mostar como deve ficar

 

agradeço ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tambem tive problemas

 

<?php echo $dados['Dado'] = preg_replace("([0-9]{2,3})([0-9]{3})([0-9]{1})","\\1.\\2-\\3",$dados['Dado'])?>

 

resposta:

 

Warning: preg_replace(): Unknown modifier '(' in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mostraBD.php on line 128

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.