CSV import PHP
Ik heb de volgende vraag: heeft iemand nog een script voor het importeren van een CSV file in PHP? Ik krijg wel de CSV geimporteerd, maar wil graag de dubbele quotes replacen voor bijvoorbeeld een TD en nog mooier zou zijn dat ik één van de rijen kan optellen.
Dit is wat ik al heb:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
echo fgetcsv_PHP();
function fgetcsv_PHP()
{
if (($handle = fopen("Betalingen.csv", "r")) !== FALSE)
{
$length = 1000;
$delimiter = "|";
echo "<table>\n";
echo "<td><b>Naam</b></td><td><b>Bedrag</b></td><td><b>Dossiernummer</b></td>";
$i = 0; // ADDED
while ( ( $data = fgetcsv( $handle, $length, $delimiter ) ) !== FALSE )
{
if( $i == 0 || $i == 3 ) // ADDED
{
$num = count($data);
echo "<tr>\n";
for ($c=0; $c < $num; $c++)
{
echo "<td>".$data[$c]."</td>\n";
}
echo "</tr>\n";
}
$i++; // ADDED
}
echo "</table>";
fclose($handle);
}
}
?>
echo fgetcsv_PHP();
function fgetcsv_PHP()
{
if (($handle = fopen("Betalingen.csv", "r")) !== FALSE)
{
$length = 1000;
$delimiter = "|";
echo "<table>\n";
echo "<td><b>Naam</b></td><td><b>Bedrag</b></td><td><b>Dossiernummer</b></td>";
$i = 0; // ADDED
while ( ( $data = fgetcsv( $handle, $length, $delimiter ) ) !== FALSE )
{
if( $i == 0 || $i == 3 ) // ADDED
{
$num = count($data);
echo "<tr>\n";
for ($c=0; $c < $num; $c++)
{
echo "<td>".$data[$c]."</td>\n";
}
echo "</tr>\n";
}
$i++; // ADDED
}
echo "</table>";
fclose($handle);
}
}
?>
Bedankt!
Gewijzigd op 12/10/2012 16:31:11 door Jan Jaap van der Sluijs
Ik heb vaker teksten/csv/txt zo ingeladen. Je bent aardig op weg, alleen mis ik de logica. Probeer het terug te brengen naar minder code: door de juiste functies te gebruiken.
Vooral EXPLODE() en LIST() etc.
Je weet toch dat csv staat voor Comma Separated Values!
http://www.phphulp.nl/php/script/data-verwerking/postcode-database/1941/csvtomysqlphp/1725/
Als je dit een beetje aanpast moet het vast wel lukken ;)
Als je dit een beetje aanpast moet het vast wel lukken ;)
Ik maak gebruik van een Filemaker applicatie (in het verleden door iemand ontwikkeld). In deze applicatie moet er een betalingsoverzicht gemaakt worden met onderaan een optelling van een bepaalde kolom. Nu kan ik deze data exporteren als CSV of XML. @Ger: de CSV word gexporteerd met dubbele quotes i.p.v. kommas.
Ik bedenk me nu wel dat ik de data kan exporteren naar een MySQL database en daar vanuit de data weer kan uitlezen en optellen (bedankt mebus). Ik denk dat ik het tot zover wel even red.
Bedankt!
Hoe dan ook, je kan met mysql via LOAD DATA INFILE in één keer alle data uit een csv bestand in tabel pleuren, das veel handiger dan dat zeer omslachtig gedoe in dat script van Mebus
Gewijzigd op 13/10/2012 10:01:58 door Ger van Steenderen
Ger van Steenderen op 13/10/2012 10:01:28:
Ik zie in jouw code $delimiter = '|'
Hoe dan ook, je kan met mysql via LOAD DATA INFILE in één keer alle data uit een csv bestand in tabel pleuren, das veel handiger dan dat zeer omslachtig gedoe in dat script van Mebus
Hoe dan ook, je kan met mysql via LOAD DATA INFILE in één keer alle data uit een csv bestand in tabel pleuren, das veel handiger dan dat zeer omslachtig gedoe in dat script van Mebus
Bedankt dat je ons op die MySQL functie wijst, maar het zo erg moeten afkraken van mijn script had niet gehoeven hoor? In mijn ogen is het gewoon een creatieve oplossing dat ik snel nodig had en andere mensen ook eventueel kunnen gebruiken.
Ik vind het wel handig dat Mebus de $delimiter los opgeeft. De | vervangen door een , is niet moeilijk en kan iedereen. Gewoon handig. Ik doe het ook vaak zo hoor, zeker als je nog wat aan de data wilt veranderen/filteren.
@Eddy
Filters heb je maar zelden nodig, en voor de rest kan je alles regelen in LOAD DATE INFILE (delimiter, veld omsluitingen, etc.)