Autor Zpráva
bazz
Profil
ahoj dá se sčítat obsah souboru vypsaných
$soubory = glob("/*.{txt}", GLOB_BRACE);
foreach ($soubory as $soubor)

v každém tom texťáku je jedno číslo.
Alphard
Profil
Dá, ale nativní funkce přesně na to v PHP není. Vytvořte si nějakou proměnnou $sum a soubory procházené v tom foreach postupně načítejte a přičítejte vaši hodnotu.
$sum = 0;
foreach (...) {
  $sum += file_get_contents($filename);
}
Tohle je ta nejjednodušší podoba, která se spoléhá na automatickou konverzi stringu na číslo a správnost obsahu všech souborů. Robustnější by bylo vytvořit funkci, která vše ověří.
Taps
Profil
bazz:
Číslo je v souboru umístěn vždy na prvním řádku?
bazz
Profil
Ano na prvním. Pricitani není asi nejlepší volba protože soubory s čísly se budou mazat a přidávat a výsledek by měl být aktualni
Keeehi
Profil
bazz:
Pricitani není asi nejlepší volba protože soubory s čísly se budou mazat a přidávat a výsledek by měl být aktualni
Při každém spuštění scriptu se projdou vždy všechny soubory a znovu se sečtou. Bude to vždy aktuální a taky nehorázně pomalé. To proto že disk je ta nejpomalejší paměť počítače. Dost by tomu pomohlo, kdyby ta čísla byla v jednom souboru na různých řádcích. Ovšem úplně nejlepší řešení bude nejspíše použití databáze.
bazz
Profil
vím databáze ale s těmi neumím :-( a do jednoho souboru to napsat nemůžu protože nevím jak byh mazal jednotlivé řádky... to bych musel asi před každé číslo vrazit proměnnou pak při mazání tu proměnnou najít a vymazat daný řádek. Tím by mi tam ale vznikaly volné řádky a nevím jestli by to nedělalo bordel.


bude tam cca 40-50 souborů s čísly ale to je max a až nakonci měsíce. Každý měsíc odznova od 0
Keeehi
Profil
bazz:
databáze ale s těmi neumím
Tak je na čase se s nimi naučit. Není to nic těžkého a tobě budou stačit úplné základy.

A nebo když už nic jiného, tak to mít v paměti jako pole, které si budeš serializovat do jednoho souboru.
bazz
Profil
Zkoušel jsem to co psal Alphard ale z nějakého důvodu mi to přičítá i 1 ke každé proměnné
Taps
Profil
bazz:
jak vypadá tvůj kompletní skript?
ttom
Profil
<?php
$sum = 0;
$soubory = glob("uploads/*_provize.txt", GLOB_BRACE);
foreach ($soubory as $soubor){

$sum += file_get_contents($soubor);
echo "$sum";
}
?>

vytvořím soubor jedna_provize.txt kde není uloženo nic... vypíše 0
vložím číslo 5, vypíše 5
vytvořím soubor dva_provize.txt kde není uloženo nic... vypíše 05
vložím číslo 3, vypíše 38
vytvořím soubor tři_provize.txt kde není uloženo nic... vypíše 388
vložím číslo 2, vypíše 3810

z toho mi vyplývá že poslední dvojčíslí (10) je správný součet ale proč mi to vypisuje ty předchozí?
juriad
Profil
ttom:
Přesuň echo o řádek dále - mimo cyklus.
bazz
Profil
o jéééj taková kravina :-D
díky chlapi!!!

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