Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CSV -> PHP -> MySQL o jedną linię za dużo
Forum PHP.pl > Forum > PHP
lol75
Cześć
Mam prosty chyba problem, może ktoś z was mi pomoże.
Robię prosty skrypt typu

Plik CSV -> PHP -> MySQL

Oto fragment kodu - jedna pętla wzięta z Internetu, która ładnie czyta mi z pliku CSV, jednak o jedną linię za dużo.
Na razie zrobiłem sobie, żeby polecenia INSERT wyświetlane były za pomocą echa na stronie i wychodzi coś takiego:
  1. INSERT INTO GMINY VALUES('Boogatynia;Jelenia Góra;dolnośląskie;;http://g.co/maps/w5qsb');
  2. INSERT INTO GMINY VALUES('Bolesławiec;Wałbrzych;dolnośląskie;;http://g.co/maps/hjffn');
  3. INSERT INTO GMINY VALUES('');


Jak pozbyć się tej pustej linii na końcu?

Kod:

  1.  
  2. foreach(split($lineseparator,$csvcontent) as $line) {
  3.  
  4. $lines++;
  5.  
  6. $line = trim($line," \t");
  7.  
  8. $line = str_replace("\r","",$line);
  9.  
  10. /************************************
  11. This line escapes the special character. remove it if entries are already escaped in the csv file
  12. ************************************/
  13. $line = str_replace("'","\'",$line);
  14. /*************************************/
  15.  
  16. $linearray = explode($fieldseparator,$line);
  17.  
  18. $linemysql = implode("','",$linearray);
  19.  
  20. if($addauto)
  21. echo "insert into GMINY values('','$linemysql');<br/>";
  22. else
  23. echo "insert into GMINY values('$linemysql');<br/>";
  24.  
  25. $queries .= $query . "\n";
  26. }
  27.  


Z góry dzięki.
cudny
trim($csvcontent);
lub
rtrim($csvcontent); jeśli tylko z prawej strony chcesz uciąć.
jest jeszcze ltrim($csvcontent);

oczywiście dajesz to przed tą swoja pętlą


smile.gif

Splits a string into array by regular expression.
Warning

This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

wez no sobie plik przeczytaj poprzez file czyli:

  1. $file = file($sciezkaDoPliku);
  2. echo '<pre>';
  3. foreach($file as $f) {
  4. //$f to kolejna linia twojego pliku
  5. print_r($f);
  6. }
  7. echo '</pre>';
lol75
Wielkie dzięki!
cudny
Skoro to pomogło tongue.gif to zobacz jak prawidłowo powinieneś odczytać dane z pliku csv:

http://php.net/manual/en/function.fgetcsv.php

wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.