jppvieira 0 Denunciar post Postado Agosto 20, 2015 Sou novo no php e estou com o seguinte problema. Leio um arquivo txt e coloco um conteudo em um string. Na hora se gravar no outro txt não consigo gravar duas strings juntas. Quebra a string no meio. Exemplo: $meunome="Jose" $meusobrenome="Vieira" $tudo=$meunome." ".$meusobrenome $escreve1=fwrite($fp,$tudo); // na tela: Jose Vieira // no Arquivo Jose Vieira Já pesquisei e não achei nada que me ajudasse. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 20, 2015 Seu código funciona direitinho: $fp = fopen('test.txt', 'w'); $meunome="Jose"; $meusobrenome="Vieira"; $tudo=$meunome." ".$meusobrenome; $escreve1=fwrite($fp,$tudo); echo $tudo; echo PHP_EOL; Tanto no tela como no arquivo aparece "Jose Vieira". Deve haver algum erro no seu código e que você não postou aqui Compartilhar este post Link para o post Compartilhar em outros sites
jppvieira 0 Denunciar post Postado Agosto 20, 2015 Agora o codigo completo resultado *p2930y500X0001 RESIDENCIAL VIENA01 $inc='*p2930y1750X'; $inc2='*p1930y1750X'; $inc3='*p2930y690X'; $inc4='*p2930y500X'; while(!feof($id_arquivo)) { // lê uma linha do arquivo $linha = fgets($id_arquivo, 4096); $dado= substr($linha, 3, 8); $dado2=substr($linha,3,8); $dadoedificio=(substr($linha,3,6)); if($dadoedificio==$incedificio){ $edificio=substr($linha,10,40); } if($dado2==$incpag){ $pg=substr($linha,12,2); } if ($dado==$igual) { $tudo=$edificio.$pg; $pnumero=str_pad($numero, 5, "0", STR_PAD_LEFT); $escreve1=fwrite($fp,$inc4.$tudo."\n"); $escreve = fwrite($fp,$inc."SC-".$pnumero."\n"); // aqui quero alterar a $linha e não consigo colocar na mesma linha // tem que ficar assim *p2960y600XEXTRATO DE CONTA NORMAL Pg.01 00001 // e não assim *p2960y600XEXTRATO DE CONTA NORMAL Pg.01 // 00001 // deve sair na mesma linha $numero++; } else {$escreve = fwrite($fp, $linha); } } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 20, 2015 você colocou no "\n" no fwrite: $escreve1=fwrite($fp,$inc4.$tudo."\n"); Compartilhar este post Link para o post Compartilhar em outros sites
jppvieira 0 Denunciar post Postado Agosto 20, 2015 Sim, ja havia tentado e não funcionou como aqui. $escreve = fwrite($fp,$inc."SC-".$pnumero."\n"); aqui resolveu mas na outra não. o problema é quando incluo $inc4 estou escrevendo para impressão em pcl se eu retiro o $inc4 funciona. assim não funciona $escreve1=fwrite($fp,$inc4.$tudo); assim funciona $escreve1=fwrite($fp,$tudo); só que o $inc4 é uma string para pcl. esc*p2930y500X0001 RESIDENCIAL VIENA 01*p2930y1750XSC-00001 $tudo="0001 RESIDENCIAL VIENA 01" Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 20, 2015 Eu não entendi... você não quer a quebra de linha, mas a está adicionando no fwrite... se a quebra de linha indesejada é outra, ela está vindo do outro arquivo Note que fgets() sempre inclui a quebra de linha lida: lengthA leitura termina quando length - 1 bytes tenham sido lidos, em uma quebra de linha (que é incluída no retorno), ou no final do arquivo (EOF), o que acontecer primeiro. Se nenhum comprimento for especificado, a leitura do stream continuará até chegar ao final da linha. fonte: http://php.net/fgets Se quiser removê-la da string, use str_replace Compartilhar este post Link para o post Compartilhar em outros sites
jppvieira 0 Denunciar post Postado Agosto 21, 2015 Agradeço a boa vontade, eu não quero a quebra de linha. aqui não tem a quebra $inc4='*p2930y500X'; Compartilhar este post Link para o post Compartilhar em outros sites
jppvieira 0 Denunciar post Postado Agosto 21, 2015 Resolvido, a quebra de linha vinha do dado anterior muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites