• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

LuBoc

Esta rotina mata-me! Quem compreende que fale!

2 mensagens neste tópico

Olá pessoal,

A ver se conseguem perceber isto, porque eu já dei voltas e não entendo!

Tenho uma tabela: tb_palavras

Que é constituída por 3 campos:  p_id, p_texto, p_subst 

Exemplo de conteúdo da mesma:

1,olá,adeus

2,encontro,local

3,byebye,vem

4,xpto,*

5,trata,*

6,palavra,*

....

(e assim sucessivamente)

AGORA, no código PHP:

(não incluí a parte de ligar à base de dados)

// SE fizer isto, funciona bem:
$um = "palavra"; $dois="*"; $frase="palavra";
echo "ANTES: $um,$dois,<b>$frase</b><br>";
$frase = str_replace($um, $dois, $frase);
echo "DEPOIS: $um,$dois,<b>$frase</b><p>";

/* RESULTADO:
ANTES: palavra,*,palavra
DEPOIS: palavra,*,*
*/

// SE fizer isto, Não funciona bem:
// o valor da variável $frase é passada para este script, a qual é passada correctamente 

      $frase = strtolower($frase);
      echo "PALAVRA A PESQUISA: <b>$frase</b><hr>";
     $cresult = sql_query("select p_texto, p_subst  from tb_palavras",$db);
  while (list($um,$dois) = mysql_fetch_row($cresult)){
    $um = strtolower($um);
    $dois = strtolower($dois);
  	    $frase = str_replace($um,$dois,$frase);
            echo "$um,$dois,$frase <br>";  // para ver o que ocorre no ciclo
  }
echo "<hr>Final:<br>";
echo $frase;

O str_replace não me funciona no ciclo! Alguém sabe porquê?

Creio que está tudo bem, a tabela é corrida do inicio ao fim, mas a $frase nunca é alterada!!! (claro que testei com as palavras que lá existiam).

Se alguém tiver uma ideia, por favor, coloque aqui.

Obrigado,

LuBoc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

antes de utilizares o str_replace no ciclo, faz um var_dump() de todas as variáveis e verifica se o problema não está algures ai....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora