| 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: 17 let
|
|||
0