Autor Zpráva
Vikes
Profil
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
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
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
 $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
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.

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: