Autor | Zpráva | ||
---|---|---|---|
kuzmic Profil |
#1 · Zasláno: 6. 11. 2011, 20:18:21
Dobrý den,
chtěl bych požádat místní PHP profíky o pomoc. Mám hlavní txt soubor ve kterém je n řádků hodnot (jmen). Potřeboval bych poradit se skripte, který tento soubor projde po řádcích a po 15 údajích vždy vytvoření nový .csv soubor ve které bude těchto 15 řádku. Zkusil jsem si to napsat sám, ale seknul jsem se již v tom, jak vypisovat pouze 15 údajů. $i=1; $file='soubor2.txt'; $f=file_get_contents($file); $convert = explode("\n", $f); $pocet = count($convert); //echo $pocet; $ctrnack = 14; for($i=0;$i<=45;$i++){ if ($i <= $ctrnack ) { echo $convert[$i]; } $ctrnack = $ctrnack + 14; echo "<br />"; } Předem děkuji za jakoukoli pomoc. |
||
Tori Profil |
#2 · Zasláno: 6. 11. 2011, 21:31:32
Na přečtení jednoho řádku ze souboru je funkce fgets a místo cyklu for bych použila while. Ještě před cyklem si otevřete první cílový soubor a při každém opakování cyklu do něj zapisujete. Po každých patnácti opakováních cyklu soubor zavřete a otevřete další. (A nezapomeňte za while zavřít poslední otevřený soubor.)
|
||
kuzmic Profil |
#3 · Zasláno: 6. 11. 2011, 21:39:45
Myslíte, že byste mi mohla poradit jak do toho whilu zapsat iteraci po 15 řádcích. Aby to již nebralo ty předchozí, ale jen těch dalších 15.
Děkuji. |
||
okolojdouci Profil * |
#4 · Zasláno: 6. 11. 2011, 21:44:01
kuzmic:
Jeden cyklus. Nad ním otevřeš první soubor. Uvnitř cyklu zapisuješ řádky a počítáš průchody. Po každých patnácti zavřeš soubor a otevřeš další. Když cyklus skončí, zavřeš soubor. |
||
Musilda Profil |
#5 · Zasláno: 6. 11. 2011, 21:54:57
Spíše bych pro procházení pole použil foreach a tam počítal počet průchodů.
|
||
Chro Profil |
#6 · Zasláno: 6. 11. 2011, 22:02:22
<?php $soubor = 'soubor.txt'; $po_kolika_radcich = 15; $do_souboru_od = 1; $s_koncovkou = 'csv'; $obsah = file($soubor); $pamet = ''; $pocitac = 0; $seznam_vytvorenych_souboru = ''; foreach ($obsah as $radek) { $pamet.= $radek; $pocitac++; if ($pocitac == $po_kolika_radcich) { $novy_soubor = $do_souboru_od.'.'.$s_koncovkou; file_put_contents($novy_soubor, trim($pamet), LOCK_EX); $pocitac = 0; $pamet = ''; $seznam_vytvorenych_souboru.= $novy_soubor.'<br>'; $do_souboru_od++; } } if ($pamet != '') { echo 'Neulozeny tyto posledni radky (neni jich celkem '.$po_kolika_radcich.'): <br>'.nl2br($pamet); } else { echo 'Hotovo, nezbylo nic'; } echo '<br>Seznam vytvorenych souboru: <br>'.$seznam_vytvorenych_souboru; ?> |
||
kuzmic Profil |
#7 · Zasláno: 6. 11. 2011, 22:32:10
Vynikající! Tohle je přesně to co jsem potřeboval. Děkuji!
|
||
Časová prodleva: 12 let
|
0