Autor | Zpráva | ||
---|---|---|---|
Vikes Profil |
#1 · Zasláno: 19. 2. 2009, 19:44:57 · Upravil/a: Vikes
Zdravím,
na webu mám řešeno přidávání novinek pomocí souborů, které se následně includují do stránek. Každá novinka je jeden texťák s názvem ve formátu rrrrmmdd.txt . Potřeboval bych napsat script, který by prošel názvy všech souborů a vypsal na konec stránky např. 2009 01 02 2008 01 02 03 04 atd.. prostě stránkování příspěvků po měsících a letech (aby script zjistil které roky a měsíce se vyskytují v souborech a vytvořil odkazy na ně). script kterému podsunu měsíc a rok a on vypíše vybráné příspěvky jsem stvořil. Sice nic moc, ale funguje. <? $dp = opendir('./novinky'); while($soubor = readdir($dp)) if($soubor != '.' && $soubor != '..') { $soubory[] = $soubor; } closedir($dp); // Vypis $mesic="01"; // zadání mesice pro výpis $rok="2009"; // zadání roku pro výpis $i=count($soubory); for ($i; $i >= 0 ; $i--) { $datum=explode(".", basename($soubory[$i])); $pden[$i] =substr($datum[0],6,2); $pmesic[$i] =substr($datum[0],4,2); $prok[$i]=substr($datum[0],0,4); if ($pmesic[$i]== $mesic && $prok[$i] == $rok) { echo "<b> <font color=\"red\">" . date("d.m.Y", strtotime($datum[0]))."</font></b> - "; $text = readfile("./novinky/".$soubory[$i]); echo "<br><br>"; } Dík za reakce. |
||
SwimX Profil |
#2 · Zasláno: 19. 2. 2009, 19:55:04
Vikes
„Potřeboval bych napsat script“ pokud ho od nás chceš napsat: řekni cenu a domluvíme se. Jinak: projdeš adresář: http://cz.php.net/function.opendir a myslím že i v examlpu tam máš jak vypisovat názvy souborů. Popř přes substr - vyřízneš měsíc a dáš odkaz na stránku kde se pak zobrazí jen ty soubory z daného měsíce možná by nebylo od věci ukládat si názvy do databáze (společně s měsícem) uštřilo by to hodně práce i času |
||
Vikes Profil |
#3 · Zasláno: 19. 2. 2009, 20:11:24 · Upravil/a: Vikes
„Vikes“
„„Potřeboval bych napsat script““ „pokud ho od nás chceš napsat: řekni cenu a domluvíme se.“ „Jinak:“ „projdeš adresář: “]http://cz.php.net/function.opendir“; „a myslím že i v examlpu tam máš jak vypisovat názvy souborů. Popř přes substr - vyřízneš měsíc a dáš odkaz na stránku kde se pak zobrazí jen ty soubory z daného měsíce“ „možná by nebylo od věci ukládat si názvy do databáze (společně s měsícem) uštřilo by to hodně práce i času“ Jasný, chápu výpis názvů souborů zvládám . Dumam nad scriptem kterej všechny názvy souborů proleze a vypíše odkazy jen na roky a měsíce které složka s txt souborama novinkami obsahuje. $dp = opendir('./novinky'); while($soubor = readdir($dp)) if($soubor != '.' && $soubor != '..') { $soubory[] = $soubor; } closedir($dp); $mesic="01"; $rok="2009"; $i=count($soubory); for ($i; $i >= 0 ; $i--) { $datum=explode(".", basename($soubory[$i])); $pden[$i] =substr($datum[0],6,2); $pmesic[$i] =substr($datum[0],4,2); $prok[$i]=substr($datum[0],0,4); } $pocet = count($soubory); for ($j=1; $j <= $pocet ; $j++) { foreach ($pmesic as $prom) { // vypíše měsíce ze všech souborů v adresáří /novinky/ if ($prom == $j) { echo $prom; echo " "; break; } } } ?> Tenhle script mi vypíše mesice ze vsech souborů. Spíš bych tedy potřeboval poradit jak výpis omezit na určené roky. Tedy aby vypsal rok pak měsíce a zas rok a měsíce. Odkazy na výpis příspěvků za jednotlivé měsíce ve scriptu neni uveden. Script vypíše jen např 01 02 09 10 11 12 . |
||
AM_ Profil |
#4 · Zasláno: 19. 2. 2009, 20:58:32
$mesic="01"; $rok="2009"; settype($mesic, "integer"); settype($rok, "integer"); To je vtip? tenhle ještě neznám. V sekci, kde načítáš měsíce a roky, je spíš ukládej if (!isset($pouzita_data[$rok])) { pouzita_data[$rok] = array(); } if (!in_array($mesic, $pouzita_data[$rok])) { $pouzita_data[$rok][] = $mesic; } Tak získáš pole, kde budeš mít pro každý rok uložené všechny měsíce v něm použité (přičemž roky, které nejsou použité vůbec, se taky v poli vůbec nenastaví). |
||
Vikes Profil |
#5 · Zasláno: 19. 2. 2009, 21:03:32
„123456 $mesic="01"; $rok="2009"; settype($mesic, "integer"); settype($rok, "integer");“
„To je vtip? tenhle ještě neznám.“ „V sekci, kde načítáš měsíce a roky, je spíš ukládej“ „12 if (!isset($pouzita_data[$rok])) { pouzita_data[$rok] = array(); }if (!in_array($mesic, $pouzita_data[$rok])) { $pouzita_data[$rok][] = $mesic; }“ „Tak získáš pole, kde budeš mít pro každý rok uložené všechny měsíce v něm použité (přičemž roky, které nejsou použité vůbec, se taky v poli vůbec nenastaví).“ Ok, dík. Zkusim pořešit. Se settype jsem si jen tak trochu hrál, do scriptu nepatří :-) . Zatoulalo se. |
||
Časová prodleva: 15 let
|
0