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