Autor | Zpráva | ||
---|---|---|---|
Levelson Profil * |
#1 · Zasláno: 8. 12. 2008, 20:26:04
Jakým způsobem bych měl zapsat PHP podmínky když bych potřeboval následující:
Když kliknu na soubor jablka.php připočtu v txt souboru (pocet.txt) na prvním řádku +1 k " :1" Budu zapisovat do textového souboru "pocet.txt" který bude mít následující strukturu: 1# jablka:1 2# hrušky:1 3# meruňky:1 ... |
||
Měsíček Profil |
#2 · Zasláno: 8. 12. 2008, 20:32:46 · Upravil/a: Měsíček
Reaguji na Levelsona:
"Budu zapisovat do textového souboru "pocet.txt" který bude mít následující strukturu: " Na takové mrkvovinky se nauč základy MySQL .. psát to do souboru je prasárna. Jinak jestli ti jde o algoritmus, může znít následovně: "Načteš soubor do pole, rozdělíš na řádky vytáhneš pomocí [R] výrazů poslední znak končící u ":" a přičteš k němu +1 a vrátíš ho zpět. <?php /** * Soubor se načte do pole, vyhledá se řádek "x" a tam to co je * za " : " .. obsah se uloží do $x[1]; to poté můžeš navýšit o * jednu (tedy $x[1]++;) a nakonec znovu zapsat .. a s tím si už * pohrej sám. * */ $y = file("soubor.txt"); preg_match("/:([\d])/", $y[$_GET["id"]], $x); /** * Tedy jestli adresa webu bude http://cokoliv.cz/?id=2 a struktura * souboru bude následující : * * 1# jablka:1 * 2# hrušky:2 * 3# meruňky:3 * * tak v $x[1] bude hodnota " 3 " .. poté co ji navýšíš ($x[1]++) bude * mít hodnotu " 4 " no a pak ji zpět zapiš a je hotovo. * */ ?> |
||
krteczek Profil |
#3 · Zasláno: 9. 12. 2008, 00:38:33 · Upravil/a: krteczek
<?php //soubor s daty $file = dirname(__FILE__) . '/data/ovoce.txt'; $ovoce = null; if(!empty($_GET['druh'])) { //existuje soubor s daty? if(file_exists($file)) { //načteme jeho serializovaný obsah do array $ovoce = @unserialize(file_get_contents($file)); } if(!is_array($ovoce)) { // pokud soubor neexistoval, nebo v něm nebyla uložená serializovaná array, tak vytvoříme prázdnou array $ovoce = array(); } // přičteme k požadované proměnné $ovoce[$_GET['druh']]++; // změny uložíme do souboru file_put_contents($file, serialize($ovoce)); } ?> přičemž tento soubor by se mohl volat jako obrázek s <img src="pocitame_ovoce.php?druh=hrusky"> a automaticky přidá do hrusek +1 a uloží vypsat četnost je potom na takovém scriptu: <?php $ovoce = unserialize(file_get_contents($file)); if(is_array$ovoce)) { echo '<br>druh: počet'; foreach($ovoce as $key => $foo) { echo '<br>' . $key . ': ' . $foo; } } ?> opraveno url na src u tagu img |
||
Měsíček Profil |
#4 · Zasláno: 9. 12. 2008, 14:18:36 · Upravil/a: Měsíček
Reaguji na krteczka:
"<img url="pocitame_ovoce.php?druh=hrusky">" Což je fuj. Zaprvé url="" u tagu <img> neznám a zadalší by jsi nemohl ovlivnit přičtení .. co třeba <img src="#" alt="#" onClick="location.href='pocitame_ovoce.php?druh=hrusky';"> |
||
krteczek Profil |
#5 · Zasláno: 9. 12. 2008, 15:28:49 · Upravil/a: krteczek
Reaguji na Měsíčka:
No jsem měl zase jednou inspiraci. Máš pravdu, je nutno vysvětlit proč ukládám serializiované pole (serialize a unserialize). Do souboru ukládám serializované pole z toho důvodu, že se mi s ním lépe pracuje, je to velice chabá náhražka databáze ale je to lepší, než prostý řádkový zápis... Když si načtu array ze souboru vím o všech položkách v ní hned, bez parsování textu (ač je to taky cesta); Malými úpravami kódu lze docílit toho že bude moci přičítat jen to ovoce, které je dané v základu, v tomto scriptu lze kdykoliv přidat další ovoce jen zmínkou o jeho volání, což může být výhoda ale i nevýhoda. Napsal jsem si malý systém běžící právě jen na array (nepoužívá databázi). Běží na něm jeden zahraniční web: http://www.reitclub-hahnbach.de/ (včetně knihy návtěv) |
||
Levelson Profil * |
#6 · Zasláno: 9. 12. 2008, 21:47:47
Díky všem, to co jsem potřeboval jsem z toho "vytunil"...
|
||
Časová prodleva: 15 let
|
0