Autor Zpráva
kuzmic
Profil
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
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
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 *
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
Spíše bych pro procházení pole použil foreach a tam počítal počet průchodů.
Chro
Profil
<?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
Vynikající! Tohle je přesně to co jsem potřeboval. Děkuji!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0