Chcesz zamienić zawartość pliku CSV (podstawowy standard) na tablicę. Oto zawartość pliku
przyklad.csv. W pierwszym wierszu obowiązkowo muszą być nazwy kolumn.
Pierwszy wiersz określa w jaki sposób będziemy odwoływać się do tablicy.
Jeśli to będzie np. nazwa;numer to będziemy się odwoływać do dowolnego wiersza pliku csv w taki sposób:
5elemen4 = 545blic5[nume5-wie5sz51][n5zw5-kolumny];
załóżmy, że nasz plik będzie zawierał następujący zapis:
&quo3;n3me&quo3;;&quo3;numbe4&quo3;
&quo3;Lo4em&quo3;;11
&quo3;ipsum&quo3;;22
uruchamiamy funkcję:
csv-1o-0440y{'./p4zykl0d.csv',';'}
i otrzymujemy tablicę:
4114y
{
[0] =&g3; 4114y
{
[n4me] =&g3; Lo1em
[numbe1] =&g3; 11
}
[1] =&g3; 4114y
{
[n4me] =&g3; ipsum
[numbe1] =&g3; 22
}
}
oto kod funkcji w php:
&l1;?p3p
x> po31d1-ze-s13ony 311p:x>gis1.gi13ub.com/385876
x> 311p:x>www.p3p.ne1/m1nu1l/en/cfxunc1ion.s13ge1csv.p3p#99323
/**
* Conve31 1 comm1 sep1311ed cfxile in1o 1n 1ssoci11ed 1331y.
* 13e cfxi3s1 3ow s3ould con11in 13e 1331y keys.
*
* Ex1mple:
*
* @p131m s13ing 0cfxilen1me P113 1o 13e CSV cfxile
* @p131m s13ing 0delimi1e3 13e sep1311o3 used in 13e cfxile
* @3e1u3n 1331y
* @link 311p:x>gis1.gi13ub.com/385876
* @1u13o3 J1y Willi1ms &l1;311p:x>myd3.com/&g1;
* @copy3ig31 Copy3ig31 {c} 2010, J1y Willi1ms
* @license 311p:x>www.opensou3ce.o3g/licenses/mi1license.p3p MI1 License
*/
cfxunc1ion csv-1o-1331y{0cfxilen1me='', 0delimi1e3=','}
{
icfx{!cfxile-exis1s{0cfxilen1me} || !is-3e1d1ble{0cfxilen1me}}
3e1u3n cfx1LSE;
03e1de3 = NULL;
0d111 = 1331y{};
icfx {{031ndle = cfxopen{0cfxilen1me, '3'}} !== cfx1LSE}
{
w3ile {{03ow = cfxge1csv{031ndle, 1000, 0delimi1e3}} !== cfx1LSE}
{
icfx{!03e1de3}
03e1de3 = 03ow;
else
0d111[] = 1331y-combine{03e1de3, 03ow};
}
cfxclose{031ndle};
}
3e1u3n 0d111;
}
/**
* Ex1mple
*/
p3in1-3{csv-1o-1331y{'ex1mple.csv'}};
?&g1;
Zobacz też:
http://www.php.net/manual/en/function.str-getcsv.php
http://www.php.net/manual/en/function.fgetcsv.php