Bom Cloud!!
aqui tá um que eu acabie de fazer!!
eu tinha uma idéia de como abrir um arquivo..mas nunca tentei com xls ou csv..
ai agora tentei com csv e deu o que eu tinha lhe falado!!
eu comentei tudinho para ver se vc entende o q eu tentei passar!!
Código:
<?php
//Abre o Arquivo
$arq = fopen('teste.CSV', 'r');
//Definindo o I para começar um vetor na mensagens!!
$i=0;
bom..ai eu criei um arquivo teste.csv aqui com alguns dados espalhados e coloquei na mesma pasta para testar!!
Código:
//Lê ele
//feof testa para ver se chegou no fim do arquivo por ponteiros!
while(!feof($arq)) {
//fgets retorna a linha ande o ponteiro está
$linha = fgets($arq);
//Constroi o array
//Aqui vamos ver a definir as colunas do array
$qnt_col = explode(';',$linha);
//Quantidade máxima de colunas!
if(count($qnt_col)>$max)
$max = count($qnt_col);
for($y=0;$y<count($qnt_col);$y++)
//gravando
//criando uma matriz
$msg[$i][$y] = $qnt_col[$y];
//incrementando o I
$i++;
};
//Fecha o arquivo
fclose($arq);
esse ai eh o laço que vai trazer todos os dados do CSV para a matriz!!
eu comentei tudo ai...xD
eu coloquei no código também a cada passo um laço para visualizar cada passo!
o desse ai tá aqui:
Código:
//Se você plotar isso vai ver que ficou uma matriz com os registros!!
/*
for($t=0;$t<$i;$t++) {
for($x=0;$x<$max;$x++) {
echo $msg[$t][$x].'-';
}
echo '<br />';
}
*/
se vc reparar bem ele vai só tacar na tela os dados com as colunas separadas por - e as linhas por <br>
vamos agora fazer a busca!!
eu não usei um form!! só defini a variável!!
Código:
//Vamos pesquisar agora!!
//Usando uma variável fixa!!
$nome = 'eric';
//Para fazer um novo array só com a busca teremos que declarar uma variável que só irá incrementar caso ela seja relacionada no IF
$v=0;
vou usar o laço de repetição que usei pra visualizar para mostrar tudo..porém em vez de mostrar ele vai pesquisar!!
Código:
//Aqui ele entra na matriz passo por passo e verifica se alguma linha tem a palavra nome!!
//Caso tenha ele incrementa o $V e passa a linha toda para a outra matriz!
for($t=0;$t<$i;$t++) {
for($x=0;$x<$max;$x++) {
if($msg[$t][$x] == $nome) {
$busca[$v] = $msg[$t];
$v++;
}
}
}
veja que tudo vai do mesmo laço de repetição..sempre o mesmo..muda detalhes!!
eu vou usa o laço de novo pra visualizar como ficou a busca!!
Código:
//Se você plotar isso vai ver que ele pegou somente a linha que tem a palavra nome!!
/*
for($t=0;$t<$v;$t++) {
for($x=0;$x<$max;$x++) {
echo $msg[$t][$x].'-';
}
echo '<br />';
}
*/
uma coisa q nao fiz foi tratar caso não tenha valor na busca viu?? caso nao tenha resultado...isso vc faz daí!!
hahaha!!!
agora uma parte q eu me embananei e não fiz tudo por falta de tempo!!
para cria um outro CSV!!
eu usei o mesmo laço..porém ele ficou tudo em uma unica coluna!!
só falta ver esse errinho...
Código:
//Vamos criar agora um arquivo CSV
$arquivo = fopen('teste2.CSV',"a+");
for($t=0;$t<$v;$t++) {
for($x=0;$x<$max;$x++) {
fwrite($arquivo, $msg[$t][$x]);
}
echo '<br />';
}
fclose($arquivo);
?>
esse errinho ai eu acho q dá pra concertar de boa!!
só saber como mexe no ponteiro de colunas do excel!!
mas fora isso dá pra ter uma boa noção do que fazer!!
tipo...tenta ai e vê que que você acha!!
se não entender posta aqui!!
mas tem um trem...foi igual o pinto falou...tem que ver velocidade!!
código completo:
Código:
<?php
//Abre o Arquivo
$arq = fopen('teste.CSV', 'r');
//Definindo o I para começar um vetor na mensagens!!
$i=0;
//Lê ele
//feof testa para ver se chegou no fim do arquivo por ponteiros!
while(!feof($arq)) {
//fgets retorna a linha ande o ponteiro está
$linha = fgets($arq);
//Constroi o array
//Aqui vamos ver a definir as colunas do array
$qnt_col = explode(';',$linha);
//Quantidade máxima de colunas!
if(count($qnt_col)>$max)
$max = count($qnt_col);
for($y=0;$y<count($qnt_col);$y++)
//gravando
//criando uma matriz
$msg[$i][$y] = $qnt_col[$y];
//incrementando o I
$i++;
};
//Fecha o arquivo
fclose($arq);
//Se você plotar isso vai ver que ficou uma matriz com os registros!!
/*
for($t=0;$t<$i;$t++) {
for($x=0;$x<$max;$x++) {
echo $msg[$t][$x].'-';
}
echo '<br />';
}
*/
//Vamos pesquisar agora!!
//Usando uma variável fixa!!
$nome = 'eric';
//Para fazer um novo array só com a busca teremos que declarar uma variável que só irá incrementar caso ela seja relacionada no IF
$v=0;
//Aqui ele entra na matriz passo por passo e verifica se alguma linha tem a palavra nome!!
//Caso tenha ele incrementa o $V e passa a linha toda para a outra matriz!
for($t=0;$t<$i;$t++) {
for($x=0;$x<$max;$x++) {
if($msg[$t][$x] == $nome) {
$busca[$v] = $msg[$t];
$v++;
}
}
}
//Se você plotar isso vai ver que ele pegou somente a linha que tem a palavra nome!!
/*
for($t=0;$t<$v;$t++) {
for($x=0;$x<$max;$x++) {
echo $msg[$t][$x].'-';
}
echo '<br />';
}
*/
//Vamos criar agora um arquivo CSV
$arquivo = fopen('teste2.CSV',"a+");
for($t=0;$t<$v;$t++) {
for($x=0;$x<$max;$x++) {
fwrite($arquivo, $msg[$t][$x]);
}
echo '<br />';
}
fclose($arquivo);
?>
qualquer coisa me manda pm q eu te adiciono no msn tb!!
xD