Renato Penna Postado Junho 28, 2010 Denunciar Share Postado Junho 28, 2010 Como eu faço para converter um inteiro (número) para String ? Estou gerando um excel usando o PHP com vários ceps, mas quando o cep começa com zero o excel corta este zero e o cep que tem 8 caractéres, fica com 7. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 28, 2010 Denunciar Share Postado Junho 28, 2010 Como está fazendo para gerar o arquivo excel? Se possível poste o código (ou parte dele), assim fica mais fácil ajudar.Obs.:Provavelmente o problema está em fazer o excel reconhecer que o que está escrito é uma string, ou seja, a conversão em PHP de int para string não resolveria. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Junho 29, 2010 Autor Denunciar Share Postado Junho 29, 2010 (editado) $sql = mysql_query($str_sql); $linhas = mysql_num_rows($sql); $novoarquivo = fopen("Arquivo de Rastreamento.xls", "w+"); $str=""; $cep=""; for($i=0;$i<$linhas;$i++) { $codigo = mysql_result($sql,$i,"codigo"); $cep = str_pad(mysql_result($sql,$i,"cep"),8,"0",STR_PAD_LEFT); $str.="$codigo\t"."'"."$cep\n"; } fwrite($novoarquivo,$str); fclose($novoarquivo); Editado Junho 29, 2010 por Renato Penna Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 OxCom Postado Junho 29, 2010 Denunciar Share Postado Junho 29, 2010 Renato, Existem várias formas de solucionar este problema. Vou postar uma:function convertCEP($cep){ $cep = eregi_replace("([^0-9])", "", $cep); //Retira tudo que não é número da string $cep = "00000000".$cep;//Acrescenta 8 zeros no começo da string $cep = substr($cep, strlen($cep)-8); //pega os 8 digitos a direita, ou seja, os últimos 8 dígitos return $cep; }echo convertCEP('12-987');echo convertCEP('123456'); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Junho 29, 2010 Denunciar Share Postado Junho 29, 2010 $sql = mysql_query($str_sql); $linhas = mysql_num_rows($sql); $novoarquivo = fopen("Arquivo de Rastreamento.xls", "w+"); $str=""; $cep=""; for($i=0;$i<$linhas;$i++) { $codigo = mysql_result($sql,$i,"codigo"); $cep = str_pad(mysql_result($sql,$i,"cep"),8,"0",STR_PAD_LEFT); $str.="$codigo\t"."'"."$cep\n"; } fwrite($novoarquivo,$str); fclose($novoarquivo); kara, faça um teste com o script abaixo. Insira-o no início do seu script e imprima os dados na tela. header("Content-type: application/vnd.ms-excel"); header("Content-type: application/force-download"); header("Content-Disposition: attachment; filename=Relatorio.xls"); header("Pragma: no-cache"); $strHtml = '<table>'; $strHtml .= '<tr><td>'; $strHtml .= 'Teste'; $strHtml .= '</td></tr>'; $strHtml .= '</table'; echo $strHtml;Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 29, 2010 Denunciar Share Postado Junho 29, 2010 Troque:$str.="$codigo\t"."'"."$cep\n"; Por: $str.="$codigo\t"."'"."=\"$cep\"\n"; Edit: Se quiser também pode enviar um arquivo do tipo vns.ms-excel como o Romero falou, mas nesse caso terá que escrever o código como ="$cep" para indicar string (assim como fiz acima) ou formatar utilizando o atributo mso-number-format. No segundo caso ficaria mais ou menos assim: echo "<tr">; echo "<td>".$codigo."</td>"; echo "<td style=\"mso-number-format: \\"@\">".$cep."</td>"; echo "</tr>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Renato Penna
Como eu faço para converter um inteiro (número) para String ? Estou gerando um excel usando o PHP com vários ceps, mas quando o cep começa com zero o excel corta este zero e o cep que tem 8 caractéres, fica com 7.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.