Ir para conteúdo

POWERED BY:

Arquivado

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

caiomdecarli

Subistituição de Texto

Recommended Posts

Boa noite galera, essa é minha primeira postagem aqui no fórum e gostaria de pedir a ajuda de vocês.

Eu estou tentando criar uma função em php que carregue dois arquivos .txt e encontre um determinado texto dentro deles, a referência de cada texto seria um ID que estará contido nestes arquivos e após localizar eu gostaria de subistituir o texto que está em inglês no arquivo 1 pelo texto que está em português no arquivo 2, lembrando que são várias linhas de texto.

Irei dar um exemplo abaixo do que eu preciso.

 

Este é o bloco de linhas do primeiro ID que contém no Arquivo 1:

 

{
    Id: 501
    AegisName: "Red_Potion"
    Name: "Red Potion"
    Type: 0
    Buy: 50
    Weight: 70
    Script: <" itemheal rand(45,65),0; ">
},
{
    Id: 502
    AegisName: "Orange_Potion"
    Name: "Orange Potion"
    Type: 0
    Buy: 200
    Weight: 100
    Script: <" itemheal rand(105,145),0; ">
},

 

Eu gostaria de encontrar todos os Name: deste arquivo de texto e substituir a palavra que vem logo a frente que no caso seria "Red Potion" neste exemplo.

Este texto que irá substituir a palavra "Red Potion" estaria localizado no arquivo número 2 e teria seu id de referência que no caso é 501.

 

Arquivo 2:

 

501#Poção_Vermelha#
502#Poção_Laranja#

 

Um detalhe importante que eu não sei se seria possível mas qualquer coisa eu tento pesquisar depois seria na hora que substituir o texto em inglês pelo texto em português o underline( _ ) fosse retirado caso ele esteja presente na palavra.

Bom esté um pedido e tabmém minha dúvida que eu venho apanhando a alguns dias e não consegui uma solução.

Só gostaria de acrescentar que este pedido é para ajudar em uma comunidade open source na qual frequento, e este como outros arquivos a serem traduzidos são gigantes e com uma função como esta poderiamos adaptar para os demais arquivos que necessitam de tradução.

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, obrigado pela resposta.

Com sua dica até consegui abrir e exibir o arquivo completo na tela, porém quando eu uso o json_decode dependendo do jeito que é usado ele retorna null ou da um erro de objeto.

Irei mostrar como estou tentando exibir uma determinada linha do arquivo e o erro retornado.

<?php
$file = file_get_contents('item_db.txt');

for($i = 0; $i < count($file); $i++) {
    $obj = json_decode($file, true);
    print $obj->{"Id:"};
}
?>

ERRO: Trying to get property of non-object in C:\wamp\www\web\index.php on line 6

Compartilhar este post


Link para o post
Compartilhar em outros sites

o loop é desnecessário

$file já tem o conteúdo inteiro do arquivo

é essa variável $file que deve ser usada no json_decode

 

O loop vem depois disso, pra percorrer o objeto retornado por json_decode

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ximnes

Mesmo assim ele permanece o mesmo erro, e no caso ai id não é uma variavel mas sim um campo de texto. Não sei se posso ter entendido errado o funcionamento do json mas pelo que vi tem que ser do jeito que fiz mesmo.

 

@Beraldo

Eu fiz sem o loop e dei um var_dump mas ele sempre retorna null, eu fiz algumas pesquisas e encontrei pessoas com problemas semelhantes mas nenhuma das soluções serviu para o meu caso, mas continuo tentando aqui e se descobrir onde estou errando eu posto aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se retornou null, é porque não é um JSON válido

 

Olhando seu post de novo, achei estranho isto:

 

 

Script: <" itemheal rand(45,65),0; ">

 

O "<" e o ">" estão fora das aspas, mesmo?

Se for isso, é um JSON inválido e json_decode vai falhar

Nesse caso, você terá de fazer o parsing manualmente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim é isso mesmo porque isso é um código lua, eu pensei e fazer uma verificação para ignorar esta parte mas não consegui ainda, vou tentar de um jeito que pensei e quem sabe dê certo.

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.