login  Naam:   Wachtwoord: 
Registreer je!
 Forum

fgetcsv wilt niet in array (Opgelost)

Offline GroundZero - 15/10/2011 16:16
Avatar van GroundZeroLid beste,

  1. <?php
  2. if(isset($_POST['hidden']) && $_POST['hidden'] == 'importeren-toevoegen')
  3. {
  4. if (($handle = fopen("temp/Map23.csv", "r")) !== FALSE)
  5. {
  6. while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
  7. {
  8. $num = count($data);
  9.  
  10. for ($c = 0; $c < $num; $c++)
  11. {
  12. echo $data[$c] . '<br />';
  13. $a[$c] = $data[$c];
  14. }
  15. }
  16. //fclose($handle);
  17. }
  18. echo '<br /><br />'.$a[0].'<br />'.$a[1];
  19. }
  20. ?>


Echter komt er alleen een waarde in mijn array in [0] en [1] blijft leeg ($a) hoe kan dit?

Ik wil namelijk dat er een array gemaakt word van $a van nul tot en met hoe ver nodig is.

2 antwoorden

Gesponsorde links
Offline Sam - 15/10/2011 16:35
Avatar van Sam PHP expert Je geeft de maximum lengte van een lijn mee. 1000 tekens zijn vrij snel overschreden, zeker als alle data op 1 lijn staat. De komma als delimiter is default, dus kan je alle parameters buiten de handle laten vallen in fgetcsv.

  1. <?php
  2. if(isset($_POST['hidden']) && $_POST['hidden'] == 'importeren-toevoegen')
  3. {
  4. if (($handle = fopen("temp/Map23.csv", "r")) !== FALSE)
  5. {
  6. while (($data = fgetcsv($handle)) !== FALSE)
  7. {
  8. $num = count($data);
  9.  
  10. for ($c = 0; $c < $num; $c++)
  11. {
  12. echo $data[$c] . '<br />';
  13. $a[$c] = $data[$c];
  14. }
  15. }
  16. fclose($handle);
  17. }
  18. echo '<br /><br />'.$a[0].'<br />'.$a[1];
  19. }
  20. ?>
Offline GroundZero - 15/10/2011 16:54 (laatste wijziging 15/10/2011 17:29)
Avatar van GroundZero Lid Klopt allemaal, maar het gaat PER rij... en het probleem is dat ik wil:

$a[0] = rij 1
$a[1] = rij 2

Of de max lengte nu 1 is of 1.000.000 hij moet toch twee rijen weergeven.
Het weergeven doet hij prima (echo $data[$c] . '<br />';) maar in mijn array $a plaatsen dat doet hij dus niet.

Hij vult $a[0] correct, maar $a[1] en later laat hij leeg!

P.S. de CSV ziet er uit als volgt (2 rijen in dit voorbeeld):

"naam,leeftijd,geslacht,datum"
"naam,leeftijd,geslacht,datum"


PS. opgelost met de volgende code:
  1. <?php
  2. if(isset($_POST['hidden']) && $_POST['hidden'] == 'importeren-toevoegen')
  3. {
  4. if (($handle = fopen("temp/Map23.csv", "r")) !== FALSE)
  5. {
  6. // rijen teller
  7. $i = 0;
  8.  
  9. // loop voor de inhoud
  10. while (($data = fgetcsv($handle)) !== FALSE)
  11. {
  12. $num = count($data);
  13.  
  14. for ($c = 0; $c < $num; $c++)
  15. {
  16. $a[$i] = explode(",", $data[$c]);
  17. }
  18.  
  19. // rijen teller uppen
  20. $i++;
  21. }
  22. //fclose($handle);
  23. }
  24.  
  25. echo $a[0][1].'<br />'.$a[1][1];
  26. }
  27. ?>
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.242s