2016-04-02 27 views
-1

kullanarak DEĞİL CSV dosyasından bir dizi oluşturmak için nasıl csvFile.csvPHP kullanarak ancak fgetcsv

adında bir dosya var

İlk sıra ise:

Kimliği; fechaAlta; DNI; CUIT; apellido; Nombre; Direccion; CP; TEL1; Tel2; Sexo; posta; Ficha

İkinci sıra ise:

3; 2008-10-25; 33360466; 27333604665; PERE Z; SABRINA; rivadavia 4543 Piso: 3 Depto A Barrio: PARQUE LICEO Listeleme Posta: 5000 Localidad: Cordoba, 5000, 192.772.656; 47.881.752 F; [email protected]; 342

bir PHP fonksiyonu gerekir Bu, her satırdaki her elemanın kontrolünü almamı sağlıyor.

Şimdi, işlevini kullanın:

Sonra
function readCSV($csvFile){ 
    $file_handle = fopen($csvFile, 'r'); 
    while (!feof($file_handle)) { 
     $line_of_text[] = fgetcsv($file_handle, 1024); 
    } 
    fclose($file_handle); 
    print_r($line_of_text); 
} 

ben şu sonucu alırsınız:

Array 
( 
[0] => Array ( 

[0] => Id;fechaAlta;DNI;CUIT;Apellido;Nombre;Direccion;CP;Tel1;Tel2;Sexo;mail;Ficha) 

[1] => Array ([0] => 3;2008-10-25;11660466;27116604665;PEREZ;SABRINA;COLON 43 Piso: 4 Depto: B Barrio: CENTRO Codigo Postal: 5000 Localidad: CORDOBA;5000;158882656;4111752;F;[email protected];342) 
) 

Fakat şöyle bir sonuca gerekir:

Array 
(
    [0] => Array 
     (
      [0] => Id 
      [1] => fechaAlta 
      [2] => DNI 
      [3] => CUIT 
    # 

     ) 

    [1] => Array 
     (
      [0] => 3 
      [1] => 2008-10-25 
      [2] => 11660466 
      [3] => 27116604665 
# 
     ) 

Nasıl olmalıdır Yukarıdaki sonucu elde etmek için fonksiyon?

+0

sizi Var için

$line_of_text[] = fgetcsv($file_handle, 1024, ';'); 

o zaman çalışacaktır: Varsayılan ayırıcı bir , ve dosya ayırıcı olarak ; vardır, bu nedenle) (o küçük gerçeği fgetcsv söylemem gerekiyor - sadece düzgün fgetcsv() kullanmak el kitabındaki 'fgetcsv' için parametreleri kontrol ettiniz mi ?! – Rizier123

+0

Hangi yolla "her satırdaki her elemanın kontrolünü" istiyorsun? Sadece bir ayırıcı değişimi mi? – halfer

+0

'fgetcsv' yanlış kullanıyorsunuz. Ancak, fgetcsv'yi kullanmak istemezseniz, her seferinde tek bir satır elde etmek için 'fgets'ı kullanabilirsiniz, sonra her satırı bir dizide patlatmak için' explode() işlevini kullanın. – kojow7

cevap

3

Başka bir işleve ihtiyacınız yok; Eğer

+1

Aşağıdakiler için kurallara ihtiyacımız var: "X işlevini kullanıyorum, ancak düzgün çalışmıyor, ne yapmalıyım?" ve "RTM bir problem/sorunuz olduğu fonksiyon hakkında." Bu hayatı daha kolay hale getirir;) – Rizier123