Ir ao conteúdo
  • Cadastre-se

Dúvida com str_replace() - PHP


Marcelo_CRD

Posts recomendados

Olá pessoal tudo bem?

Alguém sabe um modo de substituir uma ocorrência variável de string por outra?

Tentei utilizar a função str_replace() mas não deu certo, procurei tantas outras mas não consegui. Ficaria mais ou menos assim:

$jantar = "Hoje quero jantar às 18:00 horas!"

$jantar = str_ireplace("às |qualquer hora do dia| horas", "bem cedo", $jantar);

Imagine que no lugar de '18:00' poderia ter qualquer valor.

Procurei por caracteres coringas como o asterisco mas não achei nada.

:D

Link para o comentário
Compartilhar em outros sites

Tem N maneira de utilizar o str_replace()

veja se uma destas duas maneiras funcione com você:


$jantar = "Hoje quero jantar às 18:00 horas";
$novo = str_replace("18:00", "21:00", $jantar);
echo $novo;

ou desta maneira:


$jantar = "Hoje quero jantar às 18:00 horas!";
$escolha = "18";
$horario = array("18:00", "19:00", "21:00");

switch($escolha)
{
case "18": echo $novo = str_replace("18:00", $horario[0], $jantar);
break;
case "19": echo $novo = str_replace("18:00", $horario[1], $jantar);
break;
case "21": echo $novo = str_replace("18:00", $horario[2], $jantar);
break;
}

Seria interessante você criar uma função ou uma classe para manipulação...

Link para o comentário
Compartilhar em outros sites

Obrigado Dif.

Da maneira convencional eu até aprendi a usar, que seria trocar um valor fixo por outro.

No meu caso estou precisando bolar um jeito de trocar qualquer informação que vier por uma específica. No caso:

$jantar = "Hoje quero jantar às 18:00 horas!"

Imagine que um usuário possa colocar as horas, os minutos e os segundos que ele quiser mas que tudo seja trocado por um simples "bem cedo".

Se pudesse utilizar um caracter coringa seria perfeito:

$jantar = "Hoje quero jantar às 18:00 horas!";$jantar = str_ireplace("às * horas", "bem cedo", $jantar);echo $jantar
// A saida seria'Hoje quero jantar bem cedo'

A saida seria a mesmo não importando o horário que o usuário tivesse colocado, e o código ficaria enxuto e claro.

Continuo pesquisando uma solução mas, até agora nada.

Link para o comentário
Compartilhar em outros sites

Bem isso acredito que não dê para fazer do jeito que você está pensando.

Considere a possibilidade de usar o banco de dados e utilizar o update set para atualizar o campo.

já que o usuário teria que digitar..

sinceramente ainda não entendi o real problema..

Se a maior parte do texto for fixa.. mudando apenas algumas partes.. não é melhor armazenar em uma variável o valor e agregar a frase?

Link para o comentário
Compartilhar em outros sites

Encontrei a função!

Ela é a substr_replace(). Veja:

http://www.php.net/manual/pt_BR/function.substr-replace.php

Com ela posso fazer assim:


$teste = substr_replace('Eu quero jantar as 18:00 horas!','bem cedo',16, 14);
echo $teste;

//Saida = 'Eu quero jantar bem cedo'

Essa função troca uma parte de uma string por outra. Obrigado pela ajuda Dif, pode fechar o tópico.

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...