ugrás a tartalomhoz

Adatok változóba tétele egy adott fájl adott sorából

attiss94 · 2012. Jan. 17. (K), 19.13
Sziasztok!
Korábban már láttam ilyen megoldást, de sehol sem találom a fájlt, Google barátom sem volt segítségemre. Arról van szó, hogy van egy xyz.txt állományunk, melyben a következő struktúrában helyezkednek el az adatok: sorszám,cím,sebesség,hossz.
Például:
1,Michael Jackson - Bad,120BMP,4:01 (nulladik sor)
2,Shakira - Waka waka,110BPM,3:26 (első sor)
... és így tovább.

Minden egyes sorban így rendezkednek az adatok. A kérdésem az lenne, hogy hogyan tudnám átalakítani az egyes adatokat változókká? (Tisztában vagyok vele, hogy valamit a vesszőkkel kell variálni, de semmi ötletem nincs.)

A válaszokat előre is köszönöm!
 
1

rtfm

Poetro · 2012. Jan. 17. (K), 19.20
3

Köszönöm a választ, de

attiss94 · 2012. Jan. 17. (K), 19.40
Köszönöm a választ, de valahogy nem szeretne összejönni...

$fajl = "xyz.txt";
$nyitas = fopen($fajl, "r");
$sorok = file($fajl);
$sorszam = "";
while (($adat = fgetcsv($nyitas, 1000, ",")) !== FALSE)
	{
		$adat = $sorszam;
	}
echo $sorszam;
Valószínűleg rosszul értelmeztem a leírást, ha megkérlek tudnál nekem egy példát mutatni, ahol egy adott sort több változóba pakolunk bele?
4

Például már a legelső

Poetro · 2012. Jan. 17. (K), 20.06
Például már a legelső példa:
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
Ekkor ugye a $data változó tömbelemi az egyes mezők abban a sorban. A $row pedig ugye jelöli, hogy melyik sorról van szó (egytől indulva).
Azt nem teljesen értem miért olvasod be a teljes fájlt a file függvénnyel, ha ugyanezt megteszed az fgetcsv segítségével is. Ugyanis az fgetcsv is soronként olvas. Egy meghívással pontosan egy sort olvas be, és dolgoz fel. A másik, hogy miért is írod felül a beolvasott adatokat az üres $sorszam valtozóval?
6

Köszönöm a választ, minden

attiss94 · 2012. Jan. 17. (K), 20.16
Köszönöm a választ, minden tiszta. "Szarvashiba", de véletlenül fordítva írtam, a $sorszam változónak szerettem volna megadni az $adat változó értékét.
5

$sorszam = ""; // ...

kuka · 2012. Jan. 17. (K), 20.09
$sorszam = "";  
// ...
        $adat = $sorszam;  
// ...
echo $sorszam;
Ezek után úgy-e nem várod, hogy a $sorszam értéke más legyen mint az eredeti ""?

A dokumentációba van is egy hozzászólás amely mutassa a megoldást: list().
7

Köszönöm a választ,

attiss94 · 2012. Jan. 17. (K), 20.17
Köszönöm a választ, véletlenül felcseréltem a két változót nagy sietségemben...
2

Esetleg egy ilyen megoldás

H.Z. v2 · 2012. Jan. 17. (K), 19.25
Esetleg egy ilyen megoldás nem lenne jó: http://php.net/manual/en/function.fgetcsv.php?

(affene... addig szerkesztgettem, hogy lemaradtam :) )